2011-09-07 199 views
1

我想使用SqlDataAdapter從一個數據庫表到另一個數據庫表,但是從其他表導入行後沒有效果數據插入到數據庫表數據未插入到數據庫表中的SqlDataAdapter更新後

代碼

DataTable table1 = objDataset1.Tables[0]; 
DataTable tb = table1.Clone(); 
DataSet ds = new DataSet(); 

string ConnString = @"DataSource=.\SQLExpress;Database=WICC;Trusted_Connection=true;Connection Timeout=180;"; 

SqlConnection con = new SqlConnection(ConnString); 
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM tblSitePMRDetail", con); 
SqlCommandBuilder build = new SqlCommandBuilder(adapter); 

adapter.Fill(tb); 
con.Open(); 

foreach (DataRow dr in table1.Rows) 
{ 
    tb.ImportRow(dr); 
} 

adapter.Update(tb); 

con.Close(); 

表爲什麼不更新?

回答

2

如果違反了限制條件,ImportRow將會失敗,並且只會添加,因此請檢查表中最後的行數。您可能會發現沒有人被添加,特別是如果涉及主鍵。

鑑於tb是從table1克隆的,我建議您跳過adapter.Fill,除非您知道table1中的行狀態不正確。或者你可能想嘗試使用tb.Load(table1.CreateDataReader(),LoadOption.Upsert);