...编辑数据点修改按钮后更新数据到数据库中。求大神赐教。
发布网友
发布时间:2024-10-13 07:20
我来回答
共1个回答
热心网友
时间:2024-10-14 02:03
首先你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;
}