ADO.NET
?
ADO.NET是.NET中一組用于和數據源進行交互的面向對象類庫,提供了數據訪問的高層接口。
ADO.NET類庫在System.Data命名空間內,根據我們訪問的不同數據庫選擇命名空間,System.Data.SqlClient。
ADO.NET類最重要的優點是支持數據庫以斷開連接的方式工作。
ADO.NET主要通過兩個核心組件來完成對數據庫的操作,分別是DataSet和.NET數據庫提供程序。數據集,在命令空間:System.Data下。
前者是ADO.NET斷開式結構的核心組件,后者是專門為直接訪問數據庫,對其進行快速的只進,只讀訪問數據等數據處理而設計的組件。
ADO.NET常用對象:
Connection 連接數據庫的通道
Command 命令執行對象
DataReader 數據讀取器(只讀只進)
DataAdapter 數據適配器
DateSet 數據在內存中的表現形式,臨時數據庫,斷開式操作。
?
SqlConnection conn = new SqlConnection(); //創建Connection連接數據庫對象
conn.ConnectionString = "data sourse=.;initalial catalog=MySchool;integrated security=true;" //連接字符串
?
SqlCommand cmd = new SqlCommand(); //創建Command命令執行對象
cmd.CommandText = "SELECT * FROM dbo.Student"; //SQL語句
cmd.Connection = conn; //綁定連接
cmd.CommandType = CommandType.Text; //它告訴.net接下來執行的是一個文本(text)、存儲過程(StoredProcedure)還是表名稱(TableDirect).
?
//傳參sql語句
cmd.CommandText = "SELECT * FROM dbo.Student where UesrID=@ID"; //SQL語句
SqlParameter??para=new?SqlParameter("@ID",SqlDbType.int,4); //生成一個名為@Id的參數,必須以@開頭表示是添加的參數,并設置其類型長度,類型,長度。與數據庫中對應字段相同
para.Value=Id; //給參數賦值
cmd.Parameters.Add(para); //必須把參數變量添加到命令對象中去。
?
?
conn.Open(); //打開連接
?
int i = Covert.ToInt32(cmd.Executescalar()) //返回結果集中第一行的第一列,一般用于返回單個結果(一行一列)的時候使用,值有可能返回null。
?
int i = Covert.ToInt32(cmd.ExecuteNonQuery()) //返回受影響的行數,一般用于 增刪改 語句。執行其他語句默認返回-1。
?
SqlDataReader reader= cmd.ExecuteReader(); //執行命令,返回DataReader對象
if(reader.HasRows) //判斷是否有結果返回
while (reader.Read()) //循環讀取
{
//do something
}
conn.Close(); //關閉連接
reader.Close(); //關閉reader
?
SqlDataAdapter sda = new SqlDataAdapter(sql語句,conn) //創建對象
DataSet ds = new Dataset()
sda.fill(ds."表名")
?
?
SqlParameter??para=new?SqlParameter("@Id",SqlDbType.int,4); //生成一個名字為@Id的參數,必須以@開頭表示是添加的參數,并設置其類型長度,類型長度與數據庫中對應字段相同
para.Value=Id; //給參數賦值
cmd.Parameters.Add(para); //把參數變量添加到命令對象中去。
?
一次添加多個參數
SqlParameter[]? para=new?SqlParameter[] {new?SqlParameter("@Id",SqlDbType.int,4){value = xxx},new?SqlParameter("@Id",SqlDbType.int,4){value = xxx}};
cmd.Parameters.AddRange(para);