2012-12-13 34 views
1

現在我的問題與sqlBulkCopy是,它完成沒有任何錯誤,但當我看着表,我看不到任何數據。當它不返回任何錯誤時調試SqlBulkCopy問題

try catch塊沒有發現錯誤,我錯過了什麼?因爲我不看我的代碼

任何問題,這是我使用的代碼:

DataTable table = new DataTable(); 
table.Columns.Add(new DataColumn("Buying ID", typeof(string))); 
table.Columns.Add(new DataColumn("Buying BPC ID", typeof(string))); 
table.Columns.Add(new DataColumn("Buying BP Name", typeof(string))); 
table.Columns.Add(new DataColumn("Buying BP Post Code", typeof(string))); 
... snip ... 
table.Columns.Add(new DataColumn("Buyer BP Type", typeof(string))); 
table.Columns.Add(new DataColumn("Seller BP Type", typeof(string))); 
table.Columns.Add(new DataColumn("FileSource", typeof(string))); 
table.Columns.Add(new DataColumn("ImportDate", typeof(System.DateTime))); 

while ((line = sr.ReadLine()) != null) 
{ 
    string[] data = line.Split('\t'); 
    DataRow row = table.NewRow(); 
    for (int i=0; i<data.Length; i++) 
    { 
     row[i] = data[i]; 
    } 
    row["FileSource"] = fi.Name; 
    row["ImportDate"] = DateTime.Now; 
} 

try 
{ 
    db.Connection.Open(); 
    SqlBulkCopy bulkcopy = new SqlBulkCopy(db.Connection); 
    bulkcopy.BatchSize = 500; 
    bulkcopy.BulkCopyTimeout = 600; 
    bulkcopy.DestinationTableName = "dbo.LNST_test"; 
    foreach (var col in table.Columns) 
    { 
     bulkcopy.ColumnMappings.Add(col.ToString(), col.ToString()); //col names in datatable are identical to col names in database 
    } 
    bulkcopy.WriteToServer(table); 
    db.Connection.Close(); 
} 
catch (Exception e) 
{ 
    Console.WriteLine("ERROR : "+e.Message); 
} 
+0

可能是交易問題?什麼是分貝? –

+0

無論是事務處理還是表中沒有行,或者您正在SSMS中查看錯誤的表。 – usr

+0

數據庫是MSSQL 2008,我以管理員身份連接到它(它只是一個測試數據庫)而沒有其他人。所以我不認爲這是一個交易的問題:( – Gabriel

回答

2

天啊我傻......我忘了這一條線:table.Rows.Add(row);

我試圖插入一個空的數據表。這就是爲什麼我喜歡stackoverflow,即使我沒有從這個社區獲得答案,它可以幫助我解決我的問題:D

+0

如果'NewRow'足夠了但我不熟悉數據表,我實際上很懷疑:)很高興你找到了它。 – usr

+0

大聲笑我可能必須帶走我的+1 –

+0

是的,這是我第一次使用數據表,並從其他地方我習慣了事情,當你調用NewRow()函數時,它會創建一個新行並添加它到數據表,並返回一個指針,所以我可以更新該行:) – Gabriel

相關問題