Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SQL和c中疯狂使用日期_C#_Sql_Visual Studio 2010_Sql Server 2008 - Fatal编程技术网

C# 在SQL和c中疯狂使用日期

C# 在SQL和c中疯狂使用日期,c#,sql,visual-studio-2010,sql-server-2008,C#,Sql,Visual Studio 2010,Sql Server 2008,我正在开发一个C应用程序,在SQL Server中有一个日期列 我正在使用DateTimePicker基于日期执行查询。我已经将datetime选择器的格式更改为short,现在它将日期显示为mm dd yyyy 现在,当执行时,我从日期1-12得到正确的输出,但一旦我选择13日期,我得到错误为 从字符串转换日期/时间时转换失败 我不知道发生了什么事 我怀疑您正在使用DateTimePicker中的格式化字符串通过格式化字符串或连接动态构建SQL查询 不要那样做 SQL中的日期/时间字符串文本倾

我正在开发一个C应用程序,在SQL Server中有一个日期列

我正在使用DateTimePicker基于日期执行查询。我已经将datetime选择器的格式更改为short,现在它将日期显示为mm dd yyyy

现在,当执行时,我从日期1-12得到正确的输出,但一旦我选择13日期,我得到错误为

从字符串转换日期/时间时转换失败


我不知道发生了什么事

我怀疑您正在使用DateTimePicker中的格式化字符串通过格式化字符串或连接动态构建SQL查询

不要那样做

SQL中的日期/时间字符串文本倾向于使用sane格式,即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()) {
        ...
    }
}

粗略地说–您应该查阅文档以了解正确的用法,我写这些东西已经有一段时间了

您能告诉我们如何查询该日期吗?您的查询是什么样子的?您是否应该使用参数?将参数类型设置为SqlDbType.Date通常可以解决大多数问题…最安全的选项是在传递到DbType时将日期格式化为ISO格式。我觉得您是在使用字符串进行查询,而不是在UI上解析字符串,并使用日期/日期时间参数进行查询。。。。您是如何进行查询的?如果1-12有效,但1-13无效,我强烈怀疑出于任何原因您使用dd mm格式。我的查询如下:从考勤表中选择roll_number,name,其中date=dateTimePicker1.Text我应该如何使用SqlDbType.date?请引导我,我不知道它