从数据源SqlBulkCopy的string类型的值无法转换为指定的目标类型为nvarchar列。



在互联网上,大多数人说数据库中的字段太小了。

从数据源字符串类型的值无法转换为指定的目标类型为nvarchar列。
导致了一个截断的错误,经过仔细的检查,发现我的表设计中没有一个小字段,它不是一个单引号的问题。

经过仔细调试,发现我的文本文件是不是由于库中的表列因为SqlBulkCopy导入使用。在我的文本文件,18场,只有9场在我的桌子,和他们两个都不在文本文件(即{ }和{ }水平cagegory字段表结构1),以及默认值是从数据库中添加表结构如下:
复制代码代码如下所示:
表11的结构
创建表{ } { Ryxx }(dbo。
{姓名} { nvarchar }(30)不为空,
{ } { } idcardno nvarchar(30)不为空,
{性} { nvarchar }(2)不为空,
{ } { }高度nvarchar(5)空,
{ } { }水平nvarchar(2)为空,默认是
{类别} { }(20)为空,默认的密钥管理
{ } { }赞助nvarchar(100)空,
{ } { }接触nvarchar(30)空,
{电话} { }为nvarchar(50),
{数量} { }(30)为空

在{主}上

表1的结构

修改后的表结构如下所示
复制代码代码如下所示:
创建表{ } { Ryxx }(dbo。
{Name} {nvarchar} (30) NOT NULL,
{ } { } idcardno nvarchar(30)不为空,
{性} { nvarchar }(2)不为空,
{ } { }高度nvarchar(5)空,
{ } { }赞助nvarchar(100)空,
{ } { }接触nvarchar(30)空,
{电话} { }为nvarchar(50),
{数量} { }(30)为空,
{ } { }水平nvarchar(2)为空,默认是
{类别} { nvarchar }(20)为空,默认的密钥管理
在{主}上

这时,问题就解决了,分析的原因是从文本文件中获得的字段对应于表中的默认列,从而导致截断。考虑到当使用BCP时,应该有这样的错误。