知識寶典之ADO.NET連接模式
隨著ADO.NET的普及使用,ADO.NET在功能上也有了很大的提升,在網(wǎng)上收集了很多資料,現(xiàn)在和大家一起分享一下。ADO.NET框架支持兩種模式的數(shù)據(jù)訪問:連接模式(Connected)和非連接模式(disconnected)。這一節(jié)介紹如何使用連接模式訪問數(shù)據(jù)庫中的數(shù)據(jù),利用ADO.NET中的Connection,Command,DataReader來獲取和修改數(shù)據(jù)庫中的數(shù)據(jù)
ADO.NET連接模式的數(shù)據(jù)訪問
ADO.NET連接模式的數(shù)據(jù)訪問要使用到的三個核心類:
◆IDBConnection:表示數(shù)據(jù)源的連接,所有Connection類的基類,SqlConnection實現(xiàn)了IDBConnection接口,用來與SQLServer數(shù)據(jù)源進(jìn)行連接
◆DBCommand:表示所有Command類的基類,SqlCommand實現(xiàn)了IDBCommand接口,與來對SQLServer數(shù)據(jù)庫執(zhí)行的一個Transact-SQL語句或存儲過程
◆DataReader:所有DataReader類的基類,SqlDataReader實現(xiàn)了IDataReader接口,提供一種從SQLServer數(shù)據(jù)庫讀取行的只進(jìn)流的方式。
#T#如果要連接到微軟SQLServer數(shù)據(jù)庫,盡量使用SqlClient命名空間中的SqlConnection,SqlCommand,SqlDataReader類,如果與Oracle數(shù)據(jù)庫通信,應(yīng)該使用OracleClient命名空間的類;與其它數(shù)據(jù)庫進(jìn)行通信,就應(yīng)該使用OleDB或ODBC命名空間的類。
一個簡單的ADO.NET連接模式的數(shù)據(jù)訪問例子:
- Code
- namespaceDawnDataObject
- {
- publicclassMovies//數(shù)據(jù)實體對象
- {
- publicstaticreadonlystring_connectionString;//連接數(shù)據(jù)庫字符串為靜態(tài)成員,每個實例共享。
- 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等控件做為數(shù)據(jù)源綁定
- publicList<Movies>GetAll()
- {
- List<Movies>result=newList<Movies>();
- SqlConnectionconn=newSqlConnection(_connectionString);
- SqlCommandcomm=newSqlCommand("selectTitle,DirectorfromMovies",conn);
- using(conn){//using關(guān)鍵字指定了conn一旦離開這個代碼段,自動調(diào)用其Dispose函數(shù)
- conn.Open();
- SqlDataReaderreader=comm.ExecuteReader();
- while(reader.Read()){
- Moviesnewmovie=newMovies();
- newmovie._title=(string)reader["Title"];
- newmovie._director=(string)reader["Director"];
- result.Add(newmovie);
- }
- returnresult;
- }
- }
- }