C#的DataTable如果既有新增,又有删除和更新,如何更新回数据库(单表)?

我们在实际操作过程中,不可能有新增或更新立即保存到数据库的,往往是希望作为操作后,直接点击“保存”,所有的增删改操作能全部更新回数据库。但是在网上查到的,基本都是单独针对一项操作的。哪位大侠帮下忙?

2个回答

DataTable有一个GetChanges方法,可以获取DataTable在上次提交(AcceptChanges)后发生了哪些操作,
通过这个方法你可以获取到新增的行,修改的行,删除的行,然后相应在数据库中新增,更新,删除
DataTable的每一个DataRow都时有一个RowState标识的
图片说明

foreach (var item in datatable.Rows)
{
int id = int.Parse(item["ID列"].ToString());
string sql = "select count * from table where id =" + id.ToString();
if (cmd.ExecuteScalar(sql, conn) > 0)
更新
else
插入
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问