将数据发布到基础数据源

GoTo Add and Remove Rows 添加和删除行

将数据发布到基础数据源

Common Tips 常见提示

数据网格(以及其他 DevExpress 数据感知控件)不直接与底层数据库交互。相反,它与数据源一起使用,而数据源又从数据库中检索数据。要将更改推送到底层数据库,请使用数据源 API。

无论采用何种数据绑定方法,对基础源的更改通常都应在以下事件中发布:

  • ColumnView.RowUpdated
    在最终用户完成对行的修改并尝试导航到另一行后发生。当编辑器仍处于活动状态时 (BaseView.IsEditing),RowUpdated 不会触发,因此要推送更改,您需要先关闭此编辑器 (BaseView.CloseEditor),然后调用 BaseView.UpdateCurrentRow 方法手动触发此事件。

  • ColumnView.InitNewRow |ColumnView.RowDeleted
    当最终用户添加或删除数据网格行时出现。

  • Form.Closing Form.Closing
    一个标准的 WinForms 事件,它允许您避免过多的更新,并在关闭应用程序之前一次保存所有更改。

在主从数据网格中,在设计时或在代码中创建的详图视图称为 Pattern Views。这些视图未连接到实际数据,并且其与数据相关的 API 不起作用。详细信息数据存储在 Pattern View copies – Clone Views 中。要发布在详细视图中所做的更改,您首先需要检索这样的 Clone View。为此,请调用 GridView.GetDetailView 方法。然后,您可以使用此 Clone View 的 CloseEditor 和 UpdateCurrentRow 方法。有关更多信息,请参阅此帮助主题:在代码中使用主从关系。

使用数据适配器和数据集

在传统的 ADO.NET 数据绑定中,数据网格绑定到 数据集 ,由数据适配器从基础数据源填充 。在这种情况下,若要将更改发布回基础数据源,请调用 Adapter 的 Update 方法。

using DevExpress.XtraGrid.Views.Base;
//. . .
ColumnView view = gridControl1.FocusedView as ColumnView;
view.CloseEditor();
if(view.UpdateCurrentRow()) {
    sqlDataAdapter1.Update(myDataSet, MyTable);
}
//. . .

请注意,要保存更改,Adapter 必须生成 INSERT、UPDATE 和 DELETE 命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值