在SQL服务器中插入出生日期

本文关键字:插入 出生日期 服务器 SQL | 更新日期: 2023-09-27 18:10:18

我为出生日期制作了一个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;
}

在SQL服务器中插入出生日期

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

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

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

设置日期'yyyy-mm-dd',它会插入。

是否使用存储过程?

从SqlDbType更改SP参数。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;