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();