将出生日期插入sql server

时间:2014-06-26 10:21:28

标签: c# javascript asp.net

我为出生日期制作了一个JavaScript,在调试时您可以在三个下拉框中选择出生日期。一天一个月,一个多年。我正在使用C#asp.net。问题是当我点击测试(提交或确认)时,日期不会被带到数据库表。它填空了!任何帮助将不胜感激..

这是代码:

DateOfBirth.js:

function date_populate(dayfield, monthfield, yearfield) 
{
    var today = new Date();
    var dayfield = document.getElementById(dayfield);
    var monthfield = document.getElementById(monthfield);
    var yearfield = document.getElementById(yearfield);

    for (var i = 0; i < 32; i++) 
    {
        dayfield.options[i] = new Option(i , i + 1)
        dayfield.options[today.getDate()] = new Option(today.getDate(), today.getDate(), true, true)
    }

    for (var m = 0; m < 12; m++) 
    {
         monthfield.options[m] = new Option(monthtext[m], monthtext[m])
         monthfield.options[today.getMonth()] = new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true)
    }

    var thisyear = today.getFullYear()
    for (var y = 0; y < 100; y++)
    {
        yearfield.options[y] = new Option(thisyear, thisyear)
        thisyear -= 1
    }

    yearfield.options[0] = new Option(today.getFullYear(), today.getFullYear(), true, true)
}

Form.asp.cs

protected void Button1_Click(object sender, EventArgs e)
{
    String D, M, Y, Full;

    D = Day.Value.ToString();
    M = Month.Value.ToString();
    Y = Year.Value.ToString();

    Full = D + "/" + M + "/" + Y;
}

3 个答案:

答案 0 :(得分:1)

不要将日期构造为字符串。将它们作为日期传递给 。例如:

DateTime dob = new DateTime(Year.Value, Month.Value, Day.Value);
...
cmd.Parameters.AddWithValue("dob", dob);

当您想要参考出生日期时,cmd.CommandText涉及@dob

答案 1 :(得分:0)

格式化日期'yyyy-mm-dd',它将插入。

您使用的是存储过程吗?

答案 2 :(得分:0)

将SP参数从SqlDbType.NVarChar更改为SqlDbType.DateTime,然后将日期作为DateTime对象传递给参数。你不用再担心转换了。

    DateTime dateofbirth = new DateTime(Convert.ToInt32(yearfield.SelectedValue),Convert.ToInt32(monthfield.SelectedValue), Convert.ToInt32(dayfield.SelectedValue));

    param[0] = new SqlParameter("@DateOfBirth", SqlDbType.DateTime);
    param[0].Value = dateofbirth;