ADO.NET的一點總結

ADO.NET提供了兩個組件,用來訪問和處理數據:.NET Framework數據提供程序和DataSet(數據集)。這裏敘述ADO.NETSQL Server數據庫的訪問。

l .NET Framework數據提供程序
SqlConnection
SqlConnection對象用來建立與SQL Server數據庫的連接。常用的屬性和方法有:
ConnectionString:獲取和設置應用程序連接數據庫的連接字符串。
一般數據庫連接字符串的格式爲:
Data Source=服務器名;Initial Catalog=數據庫名;User ID = 用戶名;Pwd=密碼

Data Source=服務器名;Initial Catalog=數據庫名;Integrated Security=True;
還可以利用SqlConnectionBuilder對象來生成連接字符串
Open():使用指定的設置打開數據庫連接
Close():關閉與數據庫的連接
CreateCommand():創建並返回一個與此連接關聯的數據庫命令對象。
爲了減少資源的損耗,一般用完連接後應該立刻將其關閉。常用的關閉方法有兩種:
1.try-catch-finally
try
{
//打開連接,並做各種數據操作。
}
catch(Exception)
{
//異常處理
}
finally
{
//關閉連接
}
2.using 語句
using(SqlConnection conn = new SqlConnection(連接字符串))
{
//打開連接,做各種數據的操作
}
using 語句會確保即使發生了異常,也會將conn釋放
SqlCommand
SqlCommand對象表示要對 SQL Server 數據庫執行的一個 Transact-SQL 語句或存儲過程。常用的屬性和方法有:
Connection:獲取和設置Command對象使用的數據庫連接。
CommandText:要執行的SQL語句。
//一般這兩個屬性可以由SqlCommand的構造方法設置。
ExecuteScalar:執行查詢,並返回查詢所得結果集的第1行第1列的數據
ExecuteNonQuery:執行,SQL語句並返回受影響的行數。
該方法一般應用在不需要返回結果的insert update delete等操作
ExecuteReader:根據查詢的結果返回一個DataReader對象。
一般使用此方法時,可以添加一個參數CommandBehavior.CloseConnection,表示關閉DataReader對象時自動關閉與之關聯的SqlConnection
SqlDataReader
SqlDataReader對象提供一種從 SQL Server 數據庫讀取行的只進流的方式。
當使用SqlCommand對象的ExecuteReader方法得到此類的實例後,就可以利用它來完成對結果集的讀取。
在讀取數據前,先調用Read()方法將SqlDataReader前進到下一條記錄。該方法返回一個bool值表示下一條記錄是否有值。
HasRows:表示查詢是否有結果
FieldCount:表示當前行中的列數
Item[string]:此索引器返回當前記錄指定列的值(Object類型)
Item[int]:此索引返回當前記錄指定索引處的值(Object,索引從0開始)
替代上面兩種方法的更好的方法是使用
GetXXX(int)一系列的方法,XXX是一種數據類型的名稱,參數是列的索引(從0開始),
此方法放回XXX數據類型的值,而無需像使用上面兩個索引器一樣對Object類型進行強轉
如果結果集中有很多條記錄,一般會如下使用:
//得到SqlDataReader對象reader
while(reader.Read())
{
……
XXX x = reader.GetXXX(n);
//對得到的數據x進行處理
……
}
Close():與SqlConnection類似地,使用此方法關閉資源。
SqlDataAdapter
SqlDataAdapter對象利用提供的連接和查詢語句填充一個DataTable,比如下面的代碼:
SqlDataReaderAdapter da = new SqlDataAdapter(查詢語句,連接對象);
da.Fill(DataTable對象);
將查詢的結果自動保存在DataTable對象中。

l DataSet數據集
DataSet可以簡單地理解爲內存中的數據庫,一般使用的屬性有:
Tables
獲取此數據集中的DataTable(表)的集合
另外,可以使用SqlDataAdapterUpdate方法將此數據集中的更改同步到數據庫
DataTable
Rows
獲取此數據表的DataRow(行)的集合
Columns
獲取此數據表的DataRow(列)的集合
Constraints
獲取此數據表的Constraint(約束)的集合
DataRow
表示一條記錄,一個行有各種不同的Version,當對行做了各種增刪改等操作後,不同的Version會對應不同的值。
比如:Current:表示列中目前存在的值;Default:默認值;Original:表示最初從數據庫取出來的值
DataRow有各種不同的索引器,一般提供指定的列信息和Version信息可以取出此行中對應列的值。
Item[String(,DataRowVersion)]:根據列名取出對應的值。
Item[int (,DataRowVersion)]:根據列的索引取出對應的值。
Item[DataColumn(,DataRowVersion)]根據DataColumn(列)取出對應的值。
DataColumn
用來描述一個列,以此規定DataTable 的架構,各種描述性的屬性:
AllowDBNull:對應數據庫中not null約束
AutoIncrement:是否設置標識列
AutoIncrementSeed:標識列的種子
AutoIncrementStep:標識列增量
DataType:定義此列的System.Type值,描述對應的數據類型
DefaultValue:對應數據庫中的default約束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章