Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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# 将数据库从MSSQL转换为SQLite后,字符串未被识别为有效的日期时间_C#_Sql Server_Date_Datetime_Sqlite - Fatal编程技术网

C# 将数据库从MSSQL转换为SQLite后,字符串未被识别为有效的日期时间

C# 将数据库从MSSQL转换为SQLite后,字符串未被识别为有效的日期时间,c#,sql-server,date,datetime,sqlite,C#,Sql Server,Date,Datetime,Sqlite,在使用最初为MSSQL编写的代码时,我将其更改为SQLite,当它故障为在icommand.ExecuteNonQuery;之后显示时,工作正常 字符串未被识别为有效的日期时间 将SqlDbType.Date作为icommand.Parameters.Add的第二个参数时,同样的代码在将其更改为System.Data.DbType.Date时运行良好。即使在查阅了System.Data.DbType.Date的文档后,我仍然不知所措。 所有其他的调整现在都在起作用 另外,这些列被设置为Date

在使用最初为MSSQL编写的代码时,我将其更改为SQLite,当它故障为在icommand.ExecuteNonQuery;之后显示时,工作正常

字符串未被识别为有效的日期时间

将SqlDbType.Date作为icommand.Parameters.Add的第二个参数时,同样的代码在将其更改为System.Data.DbType.Date时运行良好。即使在查阅了System.Data.DbType.Date的文档后,我仍然不知所措。 所有其他的调整现在都在起作用


另外,这些列被设置为Date im Db,因此没有Datetime的问题。如果参数类型为Date,为什么要发送字符串作为值?据我所知,DateTimePicker.Value的类型是DateTime。不使用ToString试试看是否有帮助

如果没有,请使用ToString提供已知格式,并在INSERT语句中使用该格式。例如:

String query = "INSERT INTO TableName(DateColumn) VALUES (CONVERT(Date, @DateValue, 103)"; // 103 is this format: dd/mm/yyyy
SqlParameter DateParam = new SqlParameter("@Invoice_Date", System.Data.DbType.Char, 10);
DateParam.Value = dateTimePicker1.Value.ToString("dd/MM/yyyy");
icommand.Parameters.Add(DateParam);

为什么在MSSQL中删除DateTimePicker.Value中的NotToString不重要?@JAVEDIQBAL:我不明白你在这条评论中问什么。DateTimePicker不是MSSQL的一部分,它是c代码的一部分,顺便说一句,winforms?网状物wpf?如果它的值确实是DateTime类型,那么该值应该在c和sql server之间按原样传递。DateTimePicker.value.ToString在后端受sql支持时没有问题,因为它需要DateTimePicker.value Only所以,底线是,它是否有帮助?
String query = "INSERT INTO TableName(DateColumn) VALUES (CONVERT(Date, @DateValue, 103)"; // 103 is this format: dd/mm/yyyy
SqlParameter DateParam = new SqlParameter("@Invoice_Date", System.Data.DbType.Char, 10);
DateParam.Value = dateTimePicker1.Value.ToString("dd/MM/yyyy");
icommand.Parameters.Add(DateParam);