Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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# MySqlDataAdapter错误:值的类型与列类型不匹配_C#_Mysql_Dataadapter - Fatal编程技术网

C# MySqlDataAdapter错误:值的类型与列类型不匹配

C# MySqlDataAdapter错误:值的类型与列类型不匹配,c#,mysql,dataadapter,C#,Mysql,Dataadapter,我在开发机器上完美地运行了以下代码: MySqlCommand cmd = new MySqlCommand("select * from orders where id=1", conn); System.Data.DataTable dt = new System.Data.DataTable(); MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.Fill(dt); 但是,当我在prodcution服务

我在开发机器上完美地运行了以下代码:

    MySqlCommand cmd = new MySqlCommand("select * from orders where id=1", conn);
    System.Data.DataTable dt = new System.Data.DataTable();
    MySqlDataAdapter da = new MySqlDataAdapter(cmd);
    da.Fill(dt);
但是,当我在prodcution服务器上使用相同的数据库运行相同的代码时,它会抛出以下错误:

[ArgumentException: Type of value has a mismatch with column type]
   System.Data.Common.ObjectStorage.Set(Int32 recordNo, Object value) +2256750
   System.Data.DataColumn.set_Item(Int32 record, Object value) +60

[ArgumentException: Type of value has a mismatch with column typeCouldn't store <1.1.0001 00:00:00> in myTimeColumn Column.  Expected type is MySqlDateTime.]
   System.Data.DataColumn.set_Item(Int32 record, Object value) +6632812
   System.Data.DataTable.NewRecordFromArray(Object[] value) +6638777
   System.Data.DataTable.LoadDataRow(Object[] values, Boolean fAcceptChanges) +111
   System.Data.ProviderBase.SchemaMapping.LoadDataRow() +148
   System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) +141
   System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) +292
   System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +657
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +368
   System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +487
   System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +293
[ArgumentException:值的类型与列类型不匹配]
System.Data.Common.ObjectStorage.Set(Int32记录编号,对象值)+2256750
System.Data.DataColumn.set_项(Int32记录,对象值)+60
[ArgumentException:值的类型与列类型不匹配无法存储在myTimeColumn列中。预期类型为MySqlDateTime。]
System.Data.DataColumn.set_项(Int32记录,对象值)+6632812
System.Data.DataTable.NewRecordFromArray(对象[]值)+6638777
System.Data.DataTable.LoadDataRow(对象[]值,布尔fAcceptChanges)+111
System.Data.ProviderBase.SchemaMapping.LoadDataRow()+148
System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping映射)+141
System.Data.Common.DataAdapter.FillFromReader(数据集数据集、数据表数据表、字符串srcTable、数据读取器容器数据读取器、Int32 startRecord、Int32 maxRecords、数据列parentChapterColumn、对象parentChapterValue)+292
System.Data.Common.DataAdapter.Fill(DataTable[]dataTables,IDataReader dataReader,Int32 StartRecords,Int32 maxRecords)+657
System.Data.Common.DbDataAdapter.FillInternal(数据集数据集,数据表[]数据表,Int32 StartRecords,Int32 maxRecords,字符串srcTable,IDbCommand命令,CommandBehavior)+368
System.Data.Common.DbDataAdapter.Fill(DataTable[]dataTables,Int32 startRecord,Int32 maxRecords,IDbCommand,CommandBehavior)+487
System.Data.Common.DbDataAdapter.Fill(DataTable)+293
注意:myTimeColumn是表中的datetime

开发和生产机器的内容相同:

  • MySQL服务器版本:5.6.20
  • 资料
  • .NET Framework版本:4.5.1
  • MySQL连接器/Net 6.8.3
不同的事情:

  • 生产操作系统:Windows Server 2012 R2(带IIS 8.5)
  • 开发操作系统:Windows 7 64位(带IIS 7.5)
是的:

  • 我在连接字符串中添加了Allow Zero Datetime=True和Convert Zero Datetime=True

感谢您的帮助,

删除
允许零日期时间=True
解决了这个问题。

删除
允许零日期时间=True
解决了这个问题。

删除“Convert Zero Datetime=True”而不是允许零日期时间=True对我来说很有效。。。。。试试看,删除“Convert Zero Datetime=True”而不是“Allow Zero Datetime=True”对我来说是有效的。。。。。试试看

Thx,它有效,但有人能解释它为什么有效?Thx,它有效,但有人能解释它为什么有效?