ADO.NET 的使用(一)


一、ADO.NET概要

ADO.NET 是一組向 .NET Framework 程序員公開數據訪問服務的類。 ADO.NET 為創建分布式數據共享應用程序提供了一組豐富的組件。 它提供了對關系數據、XML 和應用程序數據的訪問,因此是 .NET Framework 中不可缺少的一部分。 ADO.NET 支持多種開發需求,包括創建由應用程序、工具、語言或 Internet 瀏覽器使用的前端數據庫客戶端和中間層業務對象。

上面羅里吧嗦地說了這么多,其實呢,就一句話:ADO.NET就是為我們操作數據庫提供了很多類的一種框架。相比ORM框架,ADO.NET的性能是最快的,畢竟ORM是在ADO.NET的基礎上再次進行了封裝。ORM框架一般用於小項目,當數據量達到3W左右,性能大大降低,這時便成為了惡夢。但是呢,ADO.NET需要自己純粹地手寫sql語句,對sql的語法掌握要求比較高。

二、ADO.NET中的核心DataSet與執行流程

DataSet結構圖:

使用ADO.NET獲取數據流程圖:

三、ADO.NET五大對象

1、Connection對象---連接數據庫

    //代碼示例
    SqlConnection connection = new SqlConnection("sql連接數據庫字符串");//SqlConnection只針對sql server數據庫
    connection.Open();//打開連接
    connection.Close();//關閉連接

2、Command對象---執行sql語句、事務、存儲過程

    //代碼示例
    string sqlString="select * from Member";//sql語句
    SqlCommand command= new SqlCommand (sqlString,connection);//connection指的是Connection對象
    int rows = command.ExecuteNonQuery();//返回執行sql語句所影響的數據的行數
    object obj = command.ExecuteScalar();//返回第一行第一列的值

3、DataAdapter對象---數據適配器,填充數據到DataSet

    //代碼示例
    DataSet ds=new DataSet();
    SqlDataAdapter sqlDataAdapter=new SqlDataAdapter(command);
    sqlDataAdapter.Fill(ds);//將數據填充到DataSet

4、DataSet對象---ADO.NET的核心

將得到的數據復制一份保存到內存中,極大地減少了數據庫服務器的壓力。

    /// <summary>
    /// 執行查詢語句,返回DataSet
    /// </summary>
    /// <param name="SQLString">查詢語句</param>
    /// <returns>DataSet</returns>
    public static DataSet Query(string SQLString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                command.Fill(ds);
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }

5、DataReader---數據讀取器,只讀模式,用的比較少

    /// <summary>
    /// 執行查詢語句,返回SqlDataReader ( 注意:調用該方法后,一定要對SqlDataReader進行Close )
    /// </summary>
    /// <param name="strSQL">查詢語句</param>
    /// <returns>SqlDataReader</returns>
    public static SqlDataReader ExecuteReader(string strSQL)
    {
        SqlConnection connection = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand(strSQL, connection);
        try
        {
            connection.Open();
            SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return myReader;
         }
         catch (System.Data.SqlClient.SqlException e)
         {
            throw e;
         }
    }

四、實際項目中的使用情況

后端程序員編寫sql語句,執行后得到DataSet,從DataSet中得到DataTable,復雜的情況下,再對DataTable使用Select()方法進行再次查詢,最后將得到的數據json序列化返回。
我們在項目中,應該會看到DbHelperSQL這個類,這個類便是將ADO.NET的五大對象進行了封裝,讓我們只需編寫sql語句就可以了,不用關心數據庫的連接跟sql的執行。

五、總結

ADO.NET主要對程序員sql技能稍微高點,也是一種比較底層的框架,因此操作數據庫最快。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM