在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;
}
不要将日期构造为字符串。传递它们作为日期。例如:
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;