Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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/2/jsf-2/2.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# 如何在参数化查询中将字符串作为日期时间值传递_C#_Sql_Asp.net_Datetime - Fatal编程技术网

C# 如何在参数化查询中将字符串作为日期时间值传递

C# 如何在参数化查询中将字符串作为日期时间值传递,c#,sql,asp.net,datetime,C#,Sql,Asp.net,Datetime,我有一个选择查询。它传递一个字符串作为日期时间,如下所示 string SelectedDate = "16-04-2017"; string query1 = "SELECT * FROM test_details where selected_date <= @init "; using (SqlCommand command = new SqlCommand(query1, con)) { command.Parameters.Add("@init", SqlDbType

我有一个选择查询。它传递一个字符串作为日期时间,如下所示

string SelectedDate = "16-04-2017";
string query1 = "SELECT * FROM test_details where  selected_date <=  @init ";
using (SqlCommand command = new SqlCommand(query1, con))
{
    command.Parameters.Add("@init", SqlDbType.DateTime).Value = Convert.ToDateTime(SelectedStartDate);
}

问题是如何将
SelectedDate
转换为DateTime对象。
Convert.ToDateTime()
无法解析给定的日期,而且您在
ParseExact
中给出了错误的格式。因此,最好尝试以下方法:

DateTime dtValue = DateTime.ParseExact(SelectedDate, "dd-MM-yyyy", CultureInfo.InvariantCulture);
command.Parameters.Add("@init", SqlDbType.DateTime).Value = dtValue;

尝试使用DateTime.Parse(string)而不是DateTime.ParseExactYou代码在日期中有破折号,而您的解析有正斜杠:“16-04-2017”和“mm/dd/yyyy”
DateTime dtValue = DateTime.ParseExact(SelectedDate, "dd-MM-yyyy", CultureInfo.InvariantCulture);
command.Parameters.Add("@init", SqlDbType.DateTime).Value = dtValue;