2011-09-07 14 views
1

を更新した後、私は別のデータベーステーブルに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からクローンされているとすれば、table1の行状態が間違っていることがわかっていない限り、アダプタをスキップすることをお勧めします。

または、tb.Load(table1.CreateDataReader()、LoadOption.Upsert)を試してみてください。

関連する問題