Jad*_*ine 2 c# sql-server datetimepicker
我Date在sql数据库中有一个类型的birthdate列
在我的应用程序中,我使用a dateTimePicker来获取出生日期
但是当我试图插入date以下内容时dateTimePicker:
我收到一个错误:
'12'附近语法不正确
当我尝试调试代码时,我发现从中获取的值dateTimePicker是
日期= {3/21/2015 12:00:00 AM}
代码:
//cmd is sql command
cmd.CommandText="INSERT INTO person (birthdate) VALUES("+dateTimePicker.Value.Date+")";
//con is sql connection
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Run Code Online (Sandbox Code Playgroud)
你真正应该做的是使用参数来避免SQL注入攻击 - 它还让你摆脱字符串格式化日期 - 这也是一件好事!
//cmd is sql command
cmd.CommandText = "INSERT INTO dbo.Person(birthdate) VALUES(@Birthdate);";
cmd.Parameters.Add("@Birthdate", SqlDbType.Date).Value = dateTimePicker.Value.Date;
//con is sql connection
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Run Code Online (Sandbox Code Playgroud)
此外,建议最佳做法是将您的SqlConnection,SqlCommand以及块SqlDataReader放入using(....) { .... }以确保正确处置:
string connectionString = ".......";
string query = "INSERT INTO dbo.Person(birthdate) VALUES(@Birthdate);";
using (SqlConnection con = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add("@Birthdate", SqlDbType.Date).Value = dateTimePicker.Value.Date;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61233 次 |
| 最近记录: |