简单LINQ,C#.Net网页上的SqlDateTime溢出错误

简单LINQ,C#.Net网页上的SqlDateTime溢出错误,c#,.net,linq,overflow,sqldatetime,C#,.net,Linq,Overflow,Sqldatetime,我正在创建一个简单的页面,它使用C#从.Net的文本框中插入一些数据。我得到溢出错误,说明日期必须在特定范围内。在txtbirchdate框中输入的文本类似于:01/01/1980 调试时,Client1_Birthdate对象显示{1/1/1980 12:00:00}。就我所知,它正在做它应该做的。提前感谢您的帮助 protected void Button1_Click(object sender, EventArgs e) { DataClasses1DataContext db

我正在创建一个简单的页面,它使用C#从.Net的文本框中插入一些数据。我得到溢出错误,说明日期必须在特定范围内。在txtbirchdate框中输入的文本类似于:01/01/1980

调试时,Client1_Birthdate对象显示{1/1/1980 12:00:00}。就我所知,它正在做它应该做的。提前感谢您的帮助

protected void Button1_Click(object sender, EventArgs e)
{
    DataClasses1DataContext db = new DataClasses1DataContext();

    Client client1 = new Client
    {
        FirstName = txtFirstName.Text.ToString(),
        LastName = txtLastName.Text.ToString(),
        MiddleInitial = Convert.ToChar(txtMI.Text),
        Alias = txtAlias.Text.ToString(),
        Address = txtAddress.Text.ToString(),
        City = txtCity.Text.ToString(),
        State = txtState.Text.ToString(),
        Zip = Convert.ToInt32(txtZip.Text),
        Phone = txtPhone.Text.ToString(),
        Birthdate = Convert.ToDateTime(txtBirthdate.Text.ToString()),
        SSN = Convert.ToInt32(txtSSN.Text),
        DLNumber = txtDLNumber.Text.ToString(),
        Gender = Convert.ToByte(ddGender.Text),
        PrimaryRace = Convert.ToByte(ddPrimaryRace.Text),
        SecondaryRace = Convert.ToByte(ddSecondaryRace.Text),
        Ethnicity = Convert.ToByte(ddEthnicity.Text),
        Veteran = Convert.ToBoolean(ddVeteranStatus.Text),
        HoH = Convert.ToBoolean(ddHoH.Text)
    };

    db.Clients.InsertOnSubmit(client1);
    db.SubmitChanges();
}

如果要将datetime插入SQL Server,可能需要检查其范围,因为C#datetime.MinValue与SQL datetime.MinValue不同

C#日期时间最小值=1/1/0001

SQL日期时间最小值=1/1/1753

SQL SmallDateTime最小值=1/1/1900


C#DateTime是不可为空的变量类型。因此,在DAL中插入表之前,请确保它不为null。如果为空,将使用MinValue(或内存中存储的任何随机值)。

如果要将datetime插入SQL Server,可能需要检查其范围,因为C#datetime.MinValue与SQL datetime.MinValue不同

C#日期时间最小值=1/1/0001

SQL日期时间最小值=1/1/1753

SQL SmallDateTime最小值=1/1/1900


C#DateTime是不可为空的变量类型。因此,在DAL中插入表之前,请确保它不为null。如果为空,将使用最小值(或存储在内存中的任何随机值)。

Gregoire完全正确。我回头看了看,我有一个日期戳,但在SQL中为getdate()设置了一个默认值。我想我仍然可以插入而不必传递邮戳值。显然不是。我选择了用DateTime从C代码中填充它。现在不管怎样,哪一个更好

Gregoire完全正确。我回头看了看,我有一个日期戳,但在SQL中为getdate()设置了一个默认值。我想我仍然可以插入而不必传递邮戳值。显然不是。我选择了用DateTime从C代码中填充它。现在不管怎样,哪一个更好

表中是否有其他datetime列?表中是否有其他datetime列?