datagridview更新到MySQL_DataGridView更新数据到数据库

WinFrom程序绑定了一个DataGridView控件,我需要添加一个button按钮来更改状态,还需要把更新之后的状态更新到数据库,如下图所示的这样:

a265c51d8d1d1055ea68279ab80f4fdd.png

首先先来拖控件,把界面做出来,自己拖一个DataGridView,出来,然后设置列宽,你可以去属性那里去设置,也可以写代码来控制,代码如下

this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;

然后呢,再来给DataGridView加button。点击右上角的小三角,有一个添加列:

889cae940389c088046c0daa08c88982.png

选择button之后,改名称什么的自己看吧,有了button之后,只需要在界面上双击button就可以进入button事件了,在编辑列里面可以改一些button的属性,如图:

195801c72bb627feebb55a1afb44199d.png

一、把数据显示在DataGridView上

我用的是datatable的方式:

public DataTable DbConnection(stringsql,DataTable dt)

{using (SqlConnection con = newSqlConnection(connstr))

{if (con.State ==ConnectionState.Closed)

{

con.Open();

}

SqlCommand cmd= newSqlCommand(sql, con);

SqlDataAdapter da= newSqlDataAdapter(cmd);

da.Fill(dt);

}returndt;

}

dataGridView1.DataSource = DbConnection(sql,dt);

有时候你添加了之后表格并不会显示,这是因为你没有绑定,再加一行代码就行了

dataGridView1.DataSource = DbConnection(sql,dt);

二、把更改后的数据从DataGridView上同步到数据库

这里呢,有几种情况。例如SqlCommandBuilder 或者 直接写SQL语句也行,下面就介绍一下这两种方法吧

第一种方法:SqlCommandBuilder

private void dataGridView1_CellContentClick(objectsender, DataGridViewCellEventArgs e)

{if (e.RowIndex >= 0)

{

DataGridViewColumn column=dataGridView1.Columns[e.ColumnIndex];if (column isDataGridViewButtonColumn)

{//在这里写你的操作,上面的是判断你点击的是哪一个button按钮

}

}

}

如果要修改当前行的数据可以这样:

dataGridView1["PlaceDescribe", e.RowIndex].Value = "已禁用"; //PlaceDescribe是数据库里面的列名

SqlCommandBuilder :不建议使用,因为我用的时候数据更新有bug,准确率不高,我不知道原因。反正不推荐使用。

using (SqlConnection con = newSqlConnection(connstr))

{if (con.State ==ConnectionState.Closed)

{

con.Open();

}

SqlCommand cmd= newSqlCommand(sql, con);

da= newSqlDataAdapter(cmd);

SqlCommandBuilder scb= newSqlCommandBuilder(da);try{//强烈建议把这里写入trycatch语句

da.Update(db.DbConnection(sql,dt));

MessageBox.Show("保存成功");

}catch(Exception)

{throw;

}

}

剩下的这个就是直接写sql语句了,这个很简单

setSql = "update RtdbTransPlace set PlaceState=1,PlaceDescribe='已启用' where Tag= '" + dataGridView1["Tag", e.RowIndex].Value + "'";using (SqlConnection con = newSqlConnection(connstr))

{if (con.State ==ConnectionState.Closed)

{

con.Open();

}

SqlCommand cmd= newSqlCommand(setSql, con);try{int count =cmd.ExecuteNonQuery();

MessageBox.Show("保存成功");

}catch(Exception)

{throw;

}

}

关于表格线的问题,可以修改DataGridView的属性:

e0d4b008d947a5bd61e3bbf544938e4e.png

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

元宿six

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值