日期:2014-05-17  浏览次数:20440 次

使用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()方法,然后再更新。