GridControl编辑后如何保存数据

转自:http://www.cnblogs.com/yuhx/archive/2007/12/25/1013348.html
    我们为了程序的美观,编辑数据的方便,常常使用GridControl来格式化显示数据,并编辑数据后能直接保存数据。
    在经过大量的失败经历后,我发现了一些需要注意的地方。
    在微软的DataAdapter的Update保存方法中只说明了存放在DataSet或是DataTable中的数据如何保存,然而GridControl在编辑数据后如果能使数据更新到DataTable中,却存在问题,这样就导致程序会报错提示字段为空。在GridControl编辑状态下,GridColumn自动将状态置为BeginEdit,按Enter后,自动完成编辑EndEdit。如果你直接点击保存,发送命令Update必然提示字段为空。在这种情况下需要先对当前编辑的视图进行关闭编辑,然后 才能保存数据。

this.gridView.CloseEditor();
this.gridView.UpdateCurrentRow();
接下来就是微软的事了。

if (ds.HasChanges())
{
    DataSet dsModify 
= this.ds.GetChanges();
    
if (dsModify != null)
       
{
           
this.adapter.Update(dsModify.Tables[0]);
           
this.ds.AcceptChanges();
           MessageBox.Show(
"保存成功.""提示", MessageBoxButtons.OK,MessageBoxIcon.Information);
        }

}

为了好区分行,我们常见的做法是每间隔一行就更换一种底色的方式用于显示数据。


this.gridView.OptionsPrint.EnableAppearanceEvenRow = true;
this.gridView.OptionsPrint.EnableAppearanceOddRow = true;

删除数据。很多人都在问,我选择了一行数据,要删除它,但是怎么都得不到它的行号,怎么办,有没有想PB里类似GetRow的函数。呵呵,微软没有,GridControl好像也没有(如果哪位大侠知道,请告诉我)。我们只好变通一下,微软提供了一个BindingSource类和BindingNavigate类,在BindingNavigate类中有一个Position的属性就提供了当前DataTable的行号。


this.bindingSource1.DataSource = ds.Tables["table"].DefaultView;
this.bindingNavigator1.BindingSource = this.bindingSource1;
this.gridControl.DataSource = this.bindingSource1;

这样我能就能简单的使用GridControl来编辑数据了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值