c#中dataGridView数据绑定后的数据操做

c#中dataGridView数据绑定后的数据操做:数据库

 

注意:
 数据绑定时,须要勾选“启用删除""启用添加"“启用编辑”,不然下面的都不能执行。c#

1、删除行:
A、利用TableAdapter的Delete方法:
 格式:
 this.TableAdapter名.Delete(主键值);
 this.TableAdapter名.Fill(this.数据集名.表名);this

 特色:
 一、用SQLserver管理器创建带有主键的表才能用,而使用“数据集收集器”创建的表是临时表,根本不能保存到数据库中,并且创建的表不带TableAdapter,下面的方法都不起做用。(主键必须是惟一值,不能为空)
 二、这种删除是直接删除,没有缓冲。数据绑定后的datagridview等在数据库的表被删除后,显示是不会变化的,只有利用从新FILL(数据填充)才会显示变化。
 三、这种方法不适合大量非顺序删除。一个个确认很麻烦,不确认又容易致使错误删除。spa

 

B、使用dataTable的delete方法:
 格式:
 先在删除按钮CLICK事件中写入:(一个个做删除标记)
            if (this.dataGridView1.CurrentRow != null)
            {
                数据集名.表名.DefaultView[dataGridView1.CurrentCell.RowIndex].Delete();
            }server

 而后在保存按钮CLICK事件中写入:(真正更新到数据库表中)
            try
            {
                this.科目代码TableAdapter.Update(this.数据集名.表名);
                MessageBox.Show("保存完成!");
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);//显示更新失败的错误信息
            }事件

 或者在放弃按钮CLICK事件中写入:(放弃全部未保存的操做,回滚到开始操做前的数据)
            数据集名.表名.RejectChanges();io

 特色:
 一、这种方法不须要表设立了主键。
 二、增长和删除记录都能及时显示出来,还能一次性更新到数据库。也能够放弃全部操做。date

 

2、增长行:
 在增长记录按钮的CLICK事件中写入:
                数据集名.表名.Rows.Add(对应表列次序和类型的数据,用,号分隔开);grid

 

 而后在保存按钮CLICK事件中写入:(真正更新到数据库表中)
            try
            {
                this.科目代码TableAdapter.Update(this.xxxxDataSet.科目代码);
                MessageBox.Show("保存完成!");
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);//显示更新的错误信息
            }方法

 

 或者在放弃按钮CLICK事件中写入:(放弃全部未保存的操做,回滚到开始操做前的数据)            数据集名.表名.RejectChanges();