C#datagridview问题在dgv中编辑数据点修改按钮后更新数据到数据库中。求大神赐教。

 我来答
百度网友d6ce041
2013-12-21 · TA获得超过364个赞
知道小有建树答主
回答量:420
采纳率:0%
帮助的人:395万
展开全部
首先你gridview绑定的数据源最好是DataTable类型,当你编辑好数据进行修改后,可以将datagridview的数据源转换成DataTable类型,然后利用 DataRowState循环获取每行的状态是更改还是更新操作,如果为更新操作你可以遍历每列生成update的语句,然后统一抛给执行更新sql的方法去操作。源码给你吧
DataTable dt1 = (dataGridView1.DataSource as DataTable).GetChanges();
if (dt1 != null)
{
for (int i = 0, h = dt1.Rows.Count; i < h; i++)
{
DataRowState rowState = new DataRowState();
rowState = dt1.Rows[i].RowState;
string state = rowState.ToString();
string id = Guid.NewGuid().ToString();
if (state.Equals("added", StringComparison.CurrentCultureIgnoreCase))
{
string str = string.Format("insert into haadbbcp values('{0}','{1}','{2}','{3}');",id ,treeView1.SelectedNode.Tag, dt1.Rows[i][1].ToString(), dt1.Rows[i][5].ToString());
dataGridView1.Rows[0].Cells["编号"].Value = id;
ss += str;

}
if (state.Equals("modified", StringComparison.CurrentCultureIgnoreCase))
{
string str = string.Format("update hbbcp set hbbcp_WLBH='{0}',hbbcp_bz='{1}' where HBBCP_ID='{2}';", dt1.Rows[i][1].ToString(), dt1.Rows[i][5].ToString(), dt1.Rows[i]["编号"].ToString());
ss += str;
}
追问

你好- -  你给的代码 以我所学 还不能看懂呢 你可以根据 我给图 具体代码中的 表名 字段名么  谢谢~

追答
前面的你基本可以照抄啊。。你只需改个SQL语句就行了啊。。。
string str = string.Format("insert into haadbbcp values('{0}','{1}','{2}','{3}');",id ,treeView1.SelectedNode.Tag, dt1.Rows[i][1].ToString(), dt1.Rows[i][5].ToString());例如这个,,前面的后面的一些了都是对应的前面的1234,因为要赋值给他们。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式