我正在开发一个 C# 应用程序,并且我date
在 SQL Server 中有一个专栏。
我正在执行基于日期的查询,使用DateTimePicker
. 我已将日期时间选择器的格式更改为短格式,现在它将日期显示为mm-dd-yyyy
现在在执行时,我从日期 1-12 得到正确的输出,但是一旦我选择 13 日期,我就会得到错误
从字符串转换日期/时间时转换失败
我不知道发生了什么!
我正在开发一个 C# 应用程序,并且我date
在 SQL Server 中有一个专栏。
我正在执行基于日期的查询,使用DateTimePicker
. 我已将日期时间选择器的格式更改为短格式,现在它将日期显示为mm-dd-yyyy
现在在执行时,我从日期 1-12 得到正确的输出,但是一旦我选择 13 日期,我就会得到错误
从字符串转换日期/时间时转换失败
我不知道发生了什么!
我怀疑您正在使用其中的格式化字符串DateTimePicker
通过格式字符串或连接动态构建 SQL 查询。
不要那样做。
SQL 中的日期/时间字符串文字倾向于使用一种健全的格式(即 ISO 8601),其中各部分的顺序不同。实际上,当您将一块从 12 更改为 13 时它会爆炸的事实应该放弃它。
有SqlCommand
参数(您可以在查询中插入@foo
. 使用这些参数将确保所有内容都以正确的方式传递并正确引用:
using (SqlCommand c = connection.CreateCommand()) {
c.CommandText = "Select roll_number,name from Attendance_table where date=@date";
c.Parameters.AddWithValue("date", dateTimePicker1.Value);
using (var r = c.ExecuteReader()) {
...
}
}
(大致 - 你应该查阅文档以了解正确的用法,我写这些东西已经有一段时间了)