2012-12-12 20 views
0

當我嘗試通過SqlBulkCopy和DataTable對象將行寫入表時,出現此錯誤。SqlBulkCopy無法獲取目標表的列歸類信息

在繼續之前,讓我說我知道下面的Microsoft知識庫文章。每篇關於此錯誤的帖子都會引用該文章。但是,我的表格或模式名稱中沒有點。該表存在於用戶帳戶的默認模式中,因此只需要使用表名即可。

http://support.microsoft.com/kb/944389

這裏是進行批量寫操作的代碼:

SqlConnection cn = new SqlConnection(cs); 
cn.Open(); 

SqlTransaction tr = cn.BeginTransaction(); 

try 
{ 
    using (SqlBulkCopy copy = new SqlBulkCopy(cn, SqlBulkCopyOptions.Default, tr)) 
    { 
     copy.DestinationTableName = CircCountTableName; 
     copy.ColumnMappings.Add("CirculationRangeID", "CirculationRangeID"); 
     copy.ColumnMappings.Add("GeographyID", "GeographyID"); 
     copy.ColumnMappings.Add("CircCountModelID", "CircCountModelID"); 
     copy.ColumnMappings.Add("Monday", "Monday"); 
     copy.ColumnMappings.Add("Tuesday", "Tuesday"); 
     copy.ColumnMappings.Add("Wednesday", "Wednesday"); 
     copy.ColumnMappings.Add("Thursday", "Thursday"); 
     copy.ColumnMappings.Add("Friday", "Friday"); 
     copy.ColumnMappings.Add("Saturday", "Saturday"); 
     copy.ColumnMappings.Add("Sunday", "Sunday"); 
     copy.ColumnMappings.Add("DataSource", "DataSource"); 
     copy.ColumnMappings.Add("DataSourceID", "DataSourceID"); 
     copy.ColumnMappings.Add("CreateDate", "CreateDate"); 
     copy.ColumnMappings.Add("LastUpdateDate", "LastUpdateDate"); 
     copy.ColumnMappings.Add("LastUpdateUser", "LastUpdateUser"); 

     copy.WriteToServer(circCounts); 

     tr.Commit(); 
    } 
} 
catch (Exception ex) 
{ 
    tr.Rollback(); 
} 
finally 
{ 
    cn.Close(); 
} 

先後任何其他人遇到這個問題時的原因是不是點符號以外的東西?我懷疑這是一個權限問題,但我並不完全相信。

謝謝。

回答

1

我不知道爲什麼這會有所作爲,但是當我給賬戶用於連接數據庫授予查看定義權限 - 在數據庫屬性/權限下 - 錯誤消失。