我想对数据库中的2行进行一个位置的交换,使用Update提交整表的方式
测试表:ID(非自增主键),Name(内容)
表内已有1条数据:001,name1
操作:查询出表内数据,然后对DataTable进行删除,然后新增操作(这个方法试过,单独删除、新增都没问题)
实际提交我发现并没有先执行删除操作。我把主键删除后,发现只插入了没删除。
这是个什么情况,使用SqlDataAdapter进行Update操作只能执行一种逻辑吗
DataTable dt = new DataTable();
//DataTable数据是查出来的
//删除第0行,0行数据001,name1,001所在列是非自增主键
dt.Rows[0].Delete();
DataRow row = dt.NewRow();
row[0] = "001";//赋值为刚才删除的主键值
dt.Rows.InsertAt(row, 0);
SqlConnection con = new SqlConnection("");
SqlDataAdapter adp = new SqlDataAdapter("select * from 测试表", con);
new SqlCommandBuilder(adp);
//对dt进行更新
adp.Update(dt);//dt上面先删除一行,然后新增一行
//报错:主键重复,尝试:删除主键发现,delete的行并没有删除