2017-08-08 43 views
0

我從文本文件數據到數據表,現在當我試圖將數據插入到SQL Server 2008數據庫,我收到以下錯誤:出現InvalidOperationException試圖bulkInsert的數據表到SQL Server

InvalidOperationException: String or binary data would be truncated

我無法得到錯誤的來源,即哪個記錄拋出這個錯誤。

的代碼是如下

for (int i = 0; i < dt.Columns.Count; i++) 
{ 
    if (i == 159) 
    { 
    } 
    bulkCopy.ColumnMappings.Add(dt.Columns[i].ColumnName,DestTable.Columns[i].ColumnName); 
} 

bulkCopy.BulkCopyTimeout = 600; 
bulkCopy.DestinationTableName = "dbo.TxtFileInfo"; 
bulkCopy.WriteToServer(dt); 

我在dt變量的數據表。並且爲從文本文件創建的兩個數據表以及在數據庫中創建的空表創建匹配的列,以向其添加值。

我已經使用下面的代碼將文本文件中的所有記錄複製到數據表中。

while (reader.Read()) 
{ 
     int count1 = reader.FieldCount; 

     for (int i = 0; i < count1; i++) 
     { 
      string value = reader[i].ToString();        
      list.Add(value); 
     } 

     dt.Rows.Add(list.ToArray()); 
     list.Clear(); 
} 

我從文本文件中獲得了正確的記錄。列數也是相等的。我的數據庫表TextToTable具有數據類型nvarchar(50)的所有列,我從文本文件中以字符串形式提取每條記錄。但大宗期間插入所示的錯誤是

Cannot convert string to nvarchar(50)

+0

分享你表strucutre ....似乎您試圖插入其在DB少長數據(例如:你有數據長度20,但在DB只接受10) – Prathyush

+0

在我的表中的每一列都有數據類型nvarchar(50)。 – SAM

+0

然後檢查來自文本文件的數據。有條件檢查你的代碼中的數據長度,並有斷點排除故障。 – Prathyush

回答

0

似乎您試圖插入其在DB少長數據(例如:你有數據長度20,但在DB只接受10)

檢查來自文本文件的數據。有條件檢查你的代碼中的數據長度,並有斷點排除故障。

如果是,則增加DB中列的長度。

alter tablename 
alter column columnname varchar(xxx) 
相關問題