SqlDataAdapter更新后未将数据插入数据库表

时间:2011-09-07 09:45:19

标签: c# sql

我想使用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();

为什么表没有更新?

1 个答案:

答案 0 :(得分:2)

如果违反约束,ImportRow将失败,并且只会添加,因此请检查表格中最后的行数。您可能会发现没有添加任何内容,特别是如果涉及主键。

鉴于tb是从table1克隆的,我建议你跳过adapter.Fill除非你知道table1中的行状态不正确。

或者您可能想尝试使用tb.Load(table1.CreateDataReader(),LoadOption.Upsert);