1.ObjectDataSource控件操作数据库工作原理
在学习单元3中本书已经讲述了SqlDataSource数据源控件,其与GridView、DetailsView控件有机结合,几乎不要写任何程序代码,就可以实现数据库操作的基本功能。当在GridView、DetailsView控件中单击GridView、DetailsView控件的“插入”、“更新”和“删除”按钮时,则直接执行SqlDataSource控件的SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性指定的SQL语句或存储过程,实现数据的显示、插入、更新和删除操作。这种程序结构是典型的两层结构,GridView和DetailsView控件为表示层,执行SqlDataSource控件的SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性指定的SQL语句可以理解为数据访问层。
很多情况下,在表示层和数据访问层之间还存在某些业务逻辑或业务规则。当表示层的GridView和DetailsView控件接收数据库操作命令后,首先执行业务逻辑或业务规则,然后才执行数据库的操作。这就是所谓的三层结构:表示层、业务逻辑层和数据访问层。ObjectDataSource控件是为适应三层结构而设计的数据源控件,其与数据绑定控件协作操作数据库工作原理如图4-11所示。
图4-11 ObjectDataSource操作数据库工作原理示意图
当表示层的数据绑定控件接收到用户的数据库操作命令后,不是直接执行SQL语句,而是执行由ObjectDataSource数据源控件的SelectMethod、InsertMethod、UpdateMethod和DeleteMethod属性指定的业务组件中对象的方法,运行业务逻辑或业务规则后,最后再去执行数据访问组件中对象的相应方法,实现数据库的操作。上述ObjectDataSource数据源控件的SelectMethod、InsertMethod、UpdateMethod和DeleteMethod属性指定的业务组件中对象的方法可以理解为业务逻辑层,而数据访问组件则可理解为数据访问层。
2.技术选择(www.xing528.com)
(1)表示层数据绑定控件技术选择
尽管所有的数据绑定控件都可以绑定到ObjectDataSourc数据源控件并输出数据源控件返回的数据,但是在数据绑定控件中只有GridView、DetailView和FormView数据绑定控件接收到用户的插入、更新和删除等数据库操作命令后,能够自动执行ObjectDataSource数据源控件的InsertMethod、UpdateMethod和DeleteMethod属性指定的业务组件中对象的方法,因此通常使用ObjectDataSourc数据源控件与GridView、DetailView或FormView数据绑定控件协同实现数据库操作。
(2)数据访问层的技术选择
对于多层结构的应用程序,需要通过自定义函数返回数据库数据,由于通过DataReader在函数体中无法关闭数据库连接,而DataSet可自动打开或关闭数据库连接,此时DataSet应该是较佳的选择。
由于其插入、更新和删除命令插入、删除和更新数据库记录明显地比DataSet实现同样的任务效率要高、占用的Web服务器内存资源小。因此推荐使用直接执行Command对象的SQL语句在数据访问层实现数据的插入、删除或更新。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。