关于ADO.NET的一些思考(1)

一、关于数据库连接
1)odbc连接
以前我们使用ODBC连接数据库,使用底层的API编程比较麻烦,于是在MFC中对其进行了封装,即CDatabase类。
CDatabase表示连接到数据源的一个实例,其常见功能包括打开/关闭连接、执行SQL语句、启动事务支持、设置连接时间、查询时间属性等;
可以看出:
1:使用CDatabase可以执行ddl、dml等sql语句;
2:不能用于返回结果集;
3:参数调用不方便,使用诸如CString.Format格式化字符串,这样在安全性方面如引起注入攻击等;而且不提供参数校验功能;
2)ADO连接
从功能上来讲,ado的connection和CDatabase的功能差不多,但比odbc有增强,主要是:
1)游标位置、锁、记录集类别设置;
2)可以返回结果集recordset;
3)可以获得数据库架构信息(依赖于OLEDB的驱动);
3)SqlClient连接
再看一下SqlConnection,我们发现其仅有连接数据库、事务管理功能,而不再有执行sql语句的功能,更新数据或架构的功能都放在了SqlCommand和SqlDataAdapter中,而SqlDataReader 用于处理只读的数据;
比较以上内容,我们发现:
1:SqlConnection数据库连接类更简洁化,不再担负处理数据的功能;
2:数据的处理分为更新和读取,提高效率,而在ADO中是通过设置一些属性来完成的,使用更明确;
3:SqlConnection不提供执行sql语句功能,类功能分类更好了;

第2部分谈一下CRecordset、Recordset和DataSet三者的不同。

posted on 2004-06-04 17:06  木人(我现在不是老大)  阅读(464)  评论(0)    收藏  举报

导航