C#winform dataGridView更新数据库

本文介绍如何使用DataGridView控件更新数据库中的数据。主要分为两种情况:一是自定义数据源更新,二是通过数据源控件更新。文章提供了详细的代码示例,包括如何设置SqlConnection、SqlCommand等,并演示了如何使用SqlCommandBuilder和SqlDataAdapter完成数据更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 dataGridView更新数据库可以分2中情况:

 

1 dataGridView更新数据库自定义数据源更新数据库,

2  dataGridView数据源控件更新数据库。

当dataGridView控件启用了编辑、删除功能,你编辑了dataGridView中到列该dataGridView对应到dataset中到数据也会跟着更新但要把数据更新到数据库还需要一些代码到支持。

我们先说第一种情况:dataGridView更新数据库自定义数据源更新数据库

1)当数据库表有主键时,我们可通过全局变量dataset或者datatable,利用DataAdapter.Update()更新到数据库。

  1. public partial class Form1 : Form  
  2.     {  
  3.         private DataTable DT = new DataTable();  
  4.        private SqlDataAdapter SDA = new SqlDataAdapter();  
  5.   
  6.         public Form1()  
  7.         {  
  8.              InitializeComponent();  
  9.          }  
  10.   
  11.         private void Form1_Load(object sender, EventArgs e)  
  12.         {  
  13.   
  14.              SqlConnection conn = new SqlConnection("server=127.0.0.1;database=pubs;uid=sa");  
  15.              SqlCommand SCD = new SqlCommand("select * from tables", conn);  
  16.              SDA.SelectCommand = SCD;  
  17.              SDA.Fill(DT);  
  18.              dataGridView1.DataSource = DT;  
  19.          }  
  20.  
  21.  
  22. #region   使用Update更新数据库  
  23.         private void button_save_Click(object sender, EventArgs e)  
  24.         {  
  25.             try  
  26.             {  
  27.                  SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);                  
  28.                  SDA.Update(DT);  
  29.              }  
  30.             catch (System.Exception ex)  
  31.             {  
  32.                  MessageBox.Show(ex.ToString());  
  33.                 return;  
  34.              }  
  35.              MessageBox.Show("更新成功!");  
  36.          }  
  37. #endregion  

 

2)当数据库表没有主键时,要通过读取dataGridView改变到数据行通过SQL语句更新数据库(这个没用试暂时没有代码)。其实每个表都应该有主键到,哪怕说自增的。

2  dataGridView数据源控件更新数据库。

当dataGridView到数据源是数据源控件控件时,更新变到简单多了(也需要有主键)。我们看到页面底部里有一个TableAdapter(注意这里不是DataAdapter),该TableAdapter已经绑定CommandBuilder只须调用TableAdapter.update(ds.表名)就可以搞定。dataset也说有到,所以这个相对简单到多。  

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值