ADO.NET 的使用(一)

1、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的語法掌握要求比較高。程序員

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

DataSet結構圖:
sql

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

3、ADO.NET五大對象

一、Connection對象---鏈接數據庫

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

二、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();//返回第一行第一列的值

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

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

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

將獲得的數據複製一份保存到內存中,極大地減小了數據庫服務器的壓力。json

/// <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;
        }
    }

五、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;
         }
    }

4、實際項目中的使用狀況

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

5、總結

ADO.NET主要對程序員sql技能稍微高點,也是一種比較底層的框架,所以操做數據庫最快。瀏覽器

相關文章
相關標籤/搜索