应用架构与改进呢
2021-08-24 淮安装修公司
为数据断开的分布式体系结构的Web应用提供了支持。利用提供的对象化架构的特性为开发带来了便利,不幸的是,.NET 数据提供程序存在应用上的空白。本文分析了C#.NET应用架构中.NET数据提供程序的不足,通过挖掘DataSet组件的能力,因势利导,指出新的应用架构。
应用架构
在这个架构中(图1),为了开发的便利,使用了控件数据源绑定和DataAdapter数据自动更新。在获取数据的前端,返回了取每张表对应的DataAdapter和它们的DataSet。数据更新时,只需要使用DataAdapter的Update更新方法就可以了,它有数个重载的更新方法,其中一个只需要传递DataSet作为参数。
Update方法能自动生成InsertCommand,UpdateCommand和DeleteCommand命令,为了实现自动生成,需要为每个DataAdapter创建一个CommandBuilder。例子代码如下:
DA[i] = new SqlDataAdapter(sql[i], GetDBC());
作者: SqlCommandBuilder CB = new SqlCommandBuilder(DA[i]);
DA[i].Fill(DS, table[i]);
不幸的是,不能为每个DataAdapter指定共同的事务处理,换句话说,事务在中只能存在于单个表中。不仅如此,对于绑定的控件,不能产生自动生成的命令。为了实现绑定的控件能自动生成命令,需要挖掘DataSet的强大功能。
DataSet,DataTable和DataRow这些对象有一些重要的方法。它们都有一对共同的方法:RejectChanges和AcceptChanges。RejectChanges回滚自创建该对象以来对其进行的所有更改;AcceptChanges提交自加载此对象以来对其进行的所有更改。另外DataRow有一个重要的属性RowState,它指示了当前的状态。DataRowState有五种状态,它们是:Added,Deleted,Modified,Detached和Unchanged,这些都是该行在没有提交以前的状态。有了这些方法,让我们可以控制DataSet的数据和状态,对于绑定的控件,可以回滚绑定的事件对DataSet所做的更改,并置入修改后的值。这样,当我们使用DataAdapter更新时,SqlCommandBuilder就能够对那些需要更新的数据自动生成SQL命令。
这样如此烦琐的工作并不会影响到程序执行效率和开发效率。因为所有这些运算都是在客户机上执行的,并不会反映到络连接层;而且需要把执行的方法封装到类中,便于开发时调用。
成都白癜风医院预约挂号平顶山治疗白癜风医院费用
筋骨痛

-
-
恩惠昆仑鸿星发展训练营开幕约40名中国球员参
昆仑鸿星发展训练营开幕 约40名中国球员参与其中由中国冰球协会主办的昆仑...
- 家居风水 2020-09-12
-
恩惠昆仑鸿星发展训练营开幕约40名中国球员参
-
-
定投合理月入8000元5年还清贷款
定投合理 月入8000元5年还清贷款李先生单身,25岁,在广州一家外企做销售,...
- 家居风水 2020-08-14
-
定投合理月入8000元5年还清贷款
-
-
曼城名将经纪人球员今夏很可能加盟中超
曼城名将经纪人:球员今夏很可能加盟中超纳斯里今夏将离开曼城 ...
- 家居风水 2020-08-04
-
曼城名将经纪人球员今夏很可能加盟中超
-
-
河南主帅崔建军胜利来之不易还有差距盼再提
河南主帅崔建军:胜利来之不易 还有差距盼再提高赛后发布会 中国...
- 家居风水 2020-08-04
-
河南主帅崔建军胜利来之不易还有差距盼再提
-
-
去年海南土地出让入库365亿同比提高51
去年海南土地出让入库365亿 同比提高51%全省国土环境资源工作会议23日在海口...
- 家居风水 2020-07-11
-
去年海南土地出让入库365亿同比提高51
-
-
点名表扬周琦的天亮了他真已赢得主帅信任搭配
点名表扬!周琦的天亮了 他真已赢得主帅信任周琦凭借努力得到了主帅的认...
- 家居风水 2020-06-06
-
点名表扬周琦的天亮了他真已赢得主帅信任搭配