我正在开发一个软件,它获取csv文件并将数据放入sqlserver中。我现在正在用错误的数据测试它,当我将一个数据字符串设置为长的(在一行中)导入数据库时,我得到了错误:字符串或二进制数据将被截断,语句已终止。这很正常,这也是我应该期待的。现在,我想在更新数据库之前检测这些错误。有什么聪明的方法可以检测到这一点吗?
我的软件的工作方式是导入数据集中的每一行,然后向用户显示要导入的数据。然后,他可以单击一个按钮来进行实际的更新。然后,我执行dataAdapter.Update( Dataset,“某种东西”)来对数据库进行更新。
问题是错误行会终止所有更新并报告错误。因此,我希望在对服务器执行更新之前检测到错误,以便插入其他行。
谢谢
发布于 2009-12-17 00:33:39
您必须检查每行的列。查看是否超过数据库中指定的最大值,如果是,则将其从插入中排除。
另一种解决方案是显式截断数据并插入截断的内容,这可以通过使用SubString来完成。
发布于 2009-12-17 00:37:34
据我所知,唯一的方法是预先检查信息模式的字符限制:
Select
Column_Name,
Character_Maximum_Length
From
Information_Schema.Columns
Where
Table_Name = 'YourTableName'发布于 2009-12-17 00:40:20
您需要的是列元数据。
MSDN: SqlConnection.GetSchema Method
https://stackoverflow.com/questions/1915854
复制相似问题