将日期时间选择器值插入SQL Server 2008

本文关键字:SQL Server 2008 插入 日期 时间 选择器 | 更新日期: 2023-09-27 18:20:31

我正试图将datetimepicker值中的一个值插入SQL Server表。

我的桌子看起来像这个

Profile (Id, Name,..., DateofBirth(date)...)

我尝试过将日期时间选择器值转换为

string dt = dateTimePicker.Value.ToString("yyyy-mm-dd hh:MM:ss");
Insert into profile (id, DateofBirth)  
values(id,  CONVERT(datetime, CONVERT( varchar(11), dt, 101));

也使用这个

var date = new DateTime(dateTimePickerText);

也使用这个

DateTime date = DateBox.Value.Date;
string sDate = date.ToString("dd-MM-yy", System.Globalization.CultureInfo.InvariantCulture);
DateTime dateInsert = Convert.ToDateTime(sDate); 

但无法将日期插入数据库。第二,我如何从数据库中检索日期?

将日期时间选择器值插入SQL Server 2008

您必须使用SqlParameter

 sql="Insert into profile (id, DateofBirth) values (@id,@DateofBirth)";
    using(SqlCommand cmd=new SqlCommand(sql,conn))
     {
        cmd.Parameters.Add("@id",SqlDbType.Int).Value=10;
        cmd.Parameters.Add("@DateofBirth",SqlDbType.DateTime).Value=dateTimePicker.Value;
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
     }

就我个人而言,我已经养成了为所有SQL查询使用参数的习惯。这样可以避免SQL注入攻击向量,还可以将参数类型指定为日期时间。例如,请参阅此答案。