sqlCeBulkCopy smallint问题

时间:2013-11-15 12:26:12

标签: c# sql-server-ce

我正在使用ErikEJ的SqlCeBulkCopy类,当我插入目标类型为smallint的列时,会抛出异常。我正在使用的IDataReader实现将每个值都保存为字符串。读取第一个smallint列的值后出现异常,抛出InvalidCastException并显示以下堆栈跟踪:

  

at System.Data.SqlServerCe.SqlCeUpdatableRecord.SetClrTypeValue(Int32   ordinal,Object value,String method)at   System.Data.SqlServerCe.SqlCeUpdatableRecord.SetValue(Int32 ordinal,   对象值)   ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(ISqlCeBulkCopyInsertAdapter   适配器)在ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(IDataReader)   读者)   MyApplication.Modules.Analysis.SqlCeFileConfiguration.SqlCeBulkDataStreamer.CopyFromReader(IDataReader的   reader,String destinationConnectionString,String tableName)in   E:\代码\桌面   所有MyApplication \ SOFTWARE \ desktop_and_web \ MyApplication的\ MyApplication.Analysis \ SqlCeFileConfiguration \ SqlCeBulkDataStreamer.cs:行   44点   MyApplication.Modules.Analysis.Services.SqlCeDataManagerService.InsertData(字符串   connectionString,String tempWorkFolder,TableInfo tableInfo)in   E:\代码\桌面   所有MyApplication \ SOFTWARE \ desktop_and_web \ MyApplication的\ MyApplication.Analysis \ SERVICES \ SqlCeDataManagerService.cs:行   742

在我的过程中第一次发生这种情况,值为“8”。它也会在处理其他表时出现,总是在smallint处,并且总是在转换完全有效的字符串时。

任何人都可以建议为什么会发生这种情况以及如何解决这个问题?我的IDataReader实现应该在返回之前转换每种类型吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我认为您需要将smallint作为smallint存储在IDataReader中!但随意上传一个示例项目,我会看看。你能不能简单地使用IEnumerable,WriteToServer也支持吗?