【问题标题】:SqlCeBulkCopy smallint issuesSqlCeBulkCopy smallint 问题
【发布时间】:2013-11-15 21:03:14
【问题描述】:

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

在 System.Data.SqlServerCe.SqlCeUpdatableRecord.SetClrTypeValue(Int32 序数,对象值,字符串方法)在 System.Data.SqlServerCe.SqlCeUpdatableRecord.SetValue(Int32 序数, 对象值)在 ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(ISqlCeBulkCopyInsertAdapter 适配器)在 ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(IDataReader 读者)在 MyApplication.Modules.Analysis.SqlCeFileConfiguration.SqlCeBulkDataStreamer.CopyFromReader(IDataReader 阅读器,字符串destinationConnectionString,字符串表名)在 E:\代码\桌面 MyApplication\software\desktop_and_web\MyApplication\MyApplication.Analysis\SqlCeFileConfiguration\SqlCeBulkDataStreamer.cs:line 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:line 第742章

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

谁能建议为什么会发生这种情况以及我该如何解决?我的 IDataReader 实现是否应该在返回每种类型之前对其进行转换?

谢谢,

【问题讨论】:

    标签: c# sql-server-ce


    【解决方案1】:

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

    【讨论】:

    • 感谢 Erik,在 IDataReader 中转换有效。我不想使用 IEnumerable,因为我正在读取 .dat 文件。
    猜你喜欢
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2015-08-22
    • 2016-04-17
    相关资源
    最近更新 更多