使用ImportRow的方法无法将数据导入库中,请大家看看是怎么回事?
使用ImportRow的方法无法将数据导入库中,请大家看看是怎么回事?
数据库为sql server 2008 r2
代码如下:
public static void ImportOriginalRow(DataRow dr)
{
using (SqlConnection conn = new SqlConnection(DBConnStr))
{
DataTable dt = new DataTable();
SqlCommand selectCMD = new SqlCommand("select top 1 * from T1", conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = selectCMD;
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Fill(dt);
dt.ImportRow(dr);
dt.AcceptChanges();
da.Update(dt);
}
}
[解决办法]
去掉dt.AcceptChanges();并保证新导入DataTable的行的行状态RowState为Added。
[解决办法]
t1表要有主键字段,如果还不行那要看一下错误信息是什么再调试
[解决办法]
用循环查看每一行的RowState:
for(....)
输出dt.Rows[i].RowState
如果新加入的行不为Added,就执行dt.Rows[i].SetAdded()方法,然后再更新。