随着ADO.NET的普及使用,ADO.NET在功能上也有了很大的提升,在网上收集了很多资料,现在和大家一起分享一下。ADO.NET框架支持两种模式的数据访问:连接模式(Connected)和非连接模式(disconnected)。这一节介绍如何使用连接模式访问数据库中的数据,利用ADO.NET中的Connection,Command,DataReader来获取和修改数据库中的数据
ADO.NET连接模式的数据访问
ADO.NET连接模式的数据访问要使用到的三个核心类:
◆IDBConnection:表示数据源的连接,所有Connection类的基类,SqlConnection实现了IDBConnection接口,用来与SQLServer数据源进行连接
◆DBCommand:表示所有Command类的基类,SqlCommand实现了IDBCommand接口,与来对SQLServer数据库执行的一个Transact-SQL语句或存储过程
◆DataReader:所有DataReader类的基类,SqlDataReader实现了IDataReader接口,提供一种从SQLServer数据库读取行的只进流的方式。
#T#如果要连接到微软SQLServer数据库,尽量使用SqlClient命名空间中的SqlConnection,SqlCommand,SqlDataReader类,如果与Oracle数据库通信,应该使用OracleClient命名空间的类;与其它数据库进行通信,就应该使用OleDB或ODBC命名空间的类。
一个简单的ADO.NET连接模式的数据访问例子:
- Code
- namespaceDawnDataObject
- {
- publicclassMovies//数据实体对象
- {
- publicstaticreadonlystring_connectionString;//连接数据库字符串为静态成员,每个实例共享。
- staticMovies(){
- _connectionString=WebConfigurationManager.ConnectionStrings["DawnEnterpriseDBConnectionString"].
- ConnectionString;
- }
- privatestring_title;
- privatestring_director;
- //Movies类中包括的属性有Title、Director
- publicstringTitle{
- get{return_title;}
- set{_title=value;}
- }
- publicstringDirector{
- get{return_director;}
- set{_director=value;}
- }
- //Movies类中的GetAll方法返回一个List对象,该对象可以被GridView等控件做为数据源绑定
- publicList<Movies>GetAll()
- {
- List<Movies>result=newList<Movies>();
- SqlConnectionconn=newSqlConnection(_connectionString);
- SqlCommandcomm=newSqlCommand("selectTitle,DirectorfromMovies",conn);
- using(conn){//using关键字指定了conn一旦离开这个代码段,自动调用其Dispose函数
- conn.Open();
- SqlDataReaderreader=comm.ExecuteReader();
- while(reader.Read()){
- Moviesnewmovie=newMovies();
- newmovie._title=(string)reader["Title"];
- newmovie._director=(string)reader["Director"];
- result.Add(newmovie);
- }
- returnresult;
- }
- }
- }