2012-07-06 101 views
0

我在我的C#程序中有一個Datatable,我希望INSERT行來自SQL Server中的臨時表。方法dataAdapter.FILL()覆蓋整個數據表。我需要保留DataTable中的記錄,並將存在於臨時表中的記錄添加回我的DataTable從SQL表中向DataTable插入行

我沒有看到一個DA方法,他們似乎都回到除了FILL以外的SQL Server表。這可能嗎?

回答

2

如何合併你的數據表

DataTable dttemp = new DataTable(); 

dataAdapter.Fill(dtTemp); 

originaldatatable.Merge(dtTemp); 
+0

這個效果很好,謝謝, – cjjeeper 2012-07-06 20:04:16

0
// Now, open a database connection using the Microsoft.Jet.OLEDB provider. 
// The "using" statement ensures that the connection is closed no matter what. 
using (var connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data  source=Northwind.mdb")) 
{ 
    connection.Open(); 

// Create an OleDbDataAdapter and provide it with an INSERT command. 
var adapter = new OleDbDataAdapter(); 
adapter.InsertCommand = new OleDbCommand("INSERT INTO Shippers (CompanyName, Phone) VALUES (@CompanyName , @Phone)", connection); 
adapter.InsertCommand.Parameters.Add("CompanyName", OleDbType.VarChar, 40, "CompanyName"); 
adapter.InsertCommand.Parameters.Add("Phone", OleDbType.VarChar, 24, "Phone"); 

adapter.Update(data); 
}  
+0

我試過,但它不斷拋出異常(我敢肯定,這是我轉換我的代碼),但在此之前我一直試圖做這個工作,是什麼讓它更新DATATABLE而不是SQL TABLE?它生成的INSERT命令在我看來就像它正在進入SQL表一樣。 – cjjeeper 2012-07-06 20:06:05