有的资料把ADO.NET(Active Data Objects.NET)分为了数据提供者和用户对象两部分。不深入研究的话,大体上数据提供者对象有:
Connection对象;
Commond对象;
DataReader对象;
DataAdapter对象;
而用户对象有:
DataSet;
DataTable;
DataRow;
DataColumn;
可以看到,两者的最主要区别就是:用户对象可以为数据库中的信息提供一个本地的拷贝,可以在切断数据库连接的时候处理这个信息。可以按照任何顺序读行,可以按灵活的方式搜索、排序和过滤这些行,甚至可以改变这些行,然后还可以将所做的改变同步到数据库。
有时候,特定的命名空间才能操作特定的数据库连接(部分),这些对应关系有:
sqlserver:
using System.Data.SqlClient;
OLEDB.NET数据提供者:
using System.Data.OleDb;
Oracle:
using System.Data.OracleClient;
ODBC.NET数据提供者:
using System.Data.Odbc
可以看出,针对不同的数据源来说,以上四个数据提供者,提供不同类型的服务,其中有oracle和sqlserver专有的数据者,也有针对比较通用的数据源如oledb.net数据提供者和odbc.net数据提供者。OleDb用于access数据库的连接,sqlClient用sqlserver的连接,oracleclient用于oracle的连接。
在编程的时候需要注意的是,各种数据源的操作基本相同,不同的是操作的实现类有所不同,在用commond命令执行sql语句时,查询操作时使用ExecuteReader()方法,而其他操作需要使用ExecuteNonQuery()方法。同时,Connection需要打开和关闭,Reader对象需要关闭。