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的語法掌握要求比較高。程序員
DataSet結構圖:
sql
使用ADO.NET獲取數據流程圖:
數據庫
//代碼示例 SqlConnection connection = new SqlConnection("sql鏈接數據庫字符串");//SqlConnection只針對sql server數據庫 connection.Open();//打開鏈接 connection.Close();//關閉鏈接
//代碼示例 string sqlString="select * from Member";//sql語句 SqlCommand command= new SqlCommand (sqlString,connection);//connection指的是Connection對象 int rows = command.ExecuteNonQuery();//返回執行sql語句所影響的數據的行數 object obj = command.ExecuteScalar();//返回第一行第一列的值
//代碼示例 DataSet ds=new DataSet(); SqlDataAdapter sqlDataAdapter=new SqlDataAdapter(command); sqlDataAdapter.Fill(ds);//將數據填充到DataSet
將獲得的數據複製一份保存到內存中,極大地減小了數據庫服務器的壓力。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; } }
/// <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技能稍微高點,也是一種比較底層的框架,所以操做數據庫最快。瀏覽器