天天看點

C#學習筆記忒經典——ADO.NET篇(轉)

轉自糖-★-糖 http://www.cnblogs.com/jane_shi/

ADO.NET分為兩種連接配接模式:無連接配接模式和連接配接模式,它們之間的關系如下:

一、假如把資料庫看作是一個大水池,那麼connection就是伸進水中的進水龍頭,起着關鍵的作用,隻有它進行了連接配接,才能抽到水,也就是說才能從資料庫中提取到資料。它是一個連接配接對象,它提供了四種通路資料庫的對象,分别是:

    1.SQL Server資料庫提供程式,位于System.Data.SqlClient命名空間;

    2.ODBC資料提供程式,位于System.Data.Odbc命名空間;

    3.OLEDB資料提供程式,位于System.Data.OleDb命名空間;

    4.Oracle資料提供程式,位于System.Data.OracleClient命名空間。

    使用Connection時我們通常都必須調用Open對象來打開資料庫。 使用完後,需要關閉資料庫,這時我們可以用到Close()和Dispose()對象來關閉,這兩者的不同點是:Close方法用于關閉一個連接配接,而 Dispose方法不僅關閉一個連接配接,而且還清理 連接配接所占用的資源。當使用Close()關閉連接配接後,可以再調用Open方法打開連接配接,不會産生錯誤 ,而如果使用Dispose方法關閉連接配接,就不可以使用Open方法再次打開連接配接了,必須再次重新初始化連接配接再打開 。

二、Command對象則像是抽水機,為抽水提供動力和執行方法,通過“水龍頭”,把水反給上面的水管。它是一個資料指令對象,主要功能是向資料庫 發送查詢、更新、删除、修改操作的SQL語句。Command對象主要有這幾種方式(sqlCommand 、OleDbCommand、OdbcCommand、OracleCommand);

    Command對象有三個執行SQl的語句:

    1.ExcuteNonQuery方法——執行SQL語句,并傳回受影響的行數,在使用SqlCommand向資料庫發送增、删、改指令時,通常使用它來執行發送的SQL語句。

    2.ExecuteReader方法——執行SQL語句,并生成一個包含資料的SqlDataReader對象的執行個體。它的傳回值是一個SqlDataReader對象。

    3.ExecuteScalar方法——執行SQL語句,傳回結果集中的第一行的第一列。它的傳回值通常是結果集中的第一行的第一列或者空值(如果結果集為空)。

三、DataAdapter和DataReader對象就像輸水管,擔任着水的傳輸任務。并起着橋梁的作用。DataAdapter對象像一根輸水 管,通過發動機,把水送到水庫裡儲存。而DataReader對象也是一種水管,和DataAdapter對象不同的是,它不把水輸送到水庫裡面,而是單 向的直接把水送到需要水的使用者那裡,是以要比在水庫中周轉一下來的更快。

    1.DataReader對象是資料讀取器對象,提供隻讀幾前的遊标,如果應用程式需要每次從資料庫中取出最新的資料,或者隻是需要快速讀取資料,并不需 要修改資料,那麼就可以使用DataReader對象進行讀取。對于不同的連接配接,有不同的DataReader對象類型,暫不作介紹。

    如果要讀取資料表中的資料,通過ExecuteReader方法。對于每個關聯的SqlConnection,一次隻能打開一個SqlDataReader,在第一個關閉之前,打開别一個的任何嘗試都将失敗。

    2.DataAdapter對象是一個資料擴充卡對象,是DataSet與資料源之間的橋梁,用于與資料源之間的互通。它提供了以下四個屬性:

         1>.SqlCommand屬性:用于向資料庫發送查詢SQL語句;

         2>.DeleteCommand屬性:用于向資料庫發送删除Sql語句;

         3>.InsertCommand屬性:用于向資料庫發送查詢Sql語句;

         4>.UpdataCommand屬性:向資料庫發送更新語句;

    DataAdapter中還有幾個重要的方法:

         1>.Fill方法用資料填充DataSet。

    通過DataAdapter對象的Fill方法填充DataSet資料集。與Select指令關聯的Connection對象必須有效,但不需要将其打 開。DataSet對象就像存放于記憶體中的一個小型資料庫。它可以包含資料表、資料列、資料行、視圖、限制以及關系。

         2>.Update方法更新資料庫。(此時,DataAdapter将調用DeleteCommand、InsertCommand以及UpdateCommand屬性);

    使用DataAdapter對象的Updata方法,可以将DataSet中修改過的資料及時地更新到資料庫中。

   朋友告訴我,學習還寫出來比較好,随時記錄自己在學習過程中遇到的困難以及解決問題的方法,每個知識點都做個筆記。個人覺得比較可行,總比自己稀裡糊塗地 過一遍強好多,嘿嘿,是以就有了這個筆記,而且以後也會再寫。。。由于本文内容均為自己手敲,并非複制粘貼,是以有寫錯誤的地方,敬請諒解,且歡迎指出, 謝謝哈,呵呵。。。