程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> ADO.NET數據庫連接的知識

ADO.NET數據庫連接的知識

編輯:關於.NET

ADO.NET提供了多種對象模型,比較典型的以下有五種,它們全部歸類在System.Data.SqlClient名稱空間下。

一、SqlConnection對象

ADO.NET使用SqlConnection對象與SQL Server進行連接。連接字符串的常用形式有兩種:

1.使用Windows集成安全身份認證,例如:string connectionString ="IntegratedSecurity=SSPI;Database=MyDatabase.mdf;Server=localhost;";

或:string connectionString = "Initial Catalog= MyDataBase; Data Source=localhost;Integrated Security=SSPI;"

2.在連接字符串中指定服務器名、用戶id、用戶口令、數據庫名等信息。例如:string connectionString = "server=localhost; uid=sa; pwd=123; database=MyDatabase.mdf";

然後通過連接字符串直接創建SqlConnection對象,如SqlConnection conn = new SqlConnection(connectionString);

二、SqlCommand對象

在ADO.NET中,有兩種操作數據庫的方式:

1.無連接的方式;

2.保持連接的方式。

不論采用哪種方式,都可以通過SqlCommand對象提供的方法傳遞對數據庫操作的命令,並返回命令執行的結果。

在保持連接的方式下操作數據庫的一般步驟為:

1.創建SqlConnection的實例;

2.創建SqlCommand的實例;

3.打開連接;

4.執行命令;

5.關閉連接。

SqlCommand對象提供了多種完成對數據庫操作的方法。常用有:

1.ExecuteNonQuery

該方法執行SQL語句的結果,但不返回命令執行的表數據,僅返回操作所影響的行數。

2.ExecuteReader

ExecuteReader方法提供了只向前的、順序的快速讀取數據庫中數據的方法。該方法根據提供的SELECT語句,返回一個可以順序讀取的SqlDataReader對象,編程者可以使用Read方法循環依次讀取每個記錄中各字段(列)的內容。

3.ExecuteScaler()

該方法用於執行SELECT查詢,得到的返回結果為一個值的情況,比如使用count函數求表中記錄個數或者使用sum函數求和等。

三、SqlDataAdapter對象

SqlDataAdapter對象通過無連接的方式完成數據庫和本地DataSet之間的交互。使用這種方式操作數據庫的一般步驟為:

1.創建SqlConnection的實例;

2.創建SqlDataAdapter的實例,需要的話,根據select語句生成其他SQL語句;

3.創建DataSet的實例;

4.使用Fill方法將數據庫中的表填充到DataSet的表中;

5.利用DataGridView或者其他控件對象編輯或顯示數據;

6.需要的話,使用Update方法更新數據庫。

SqlDataAdapter對象通過SelectCommand、InsertCommand、UpdateCommand和DeleteCommand屬性為後台數據庫提供對應的操作命令,並傳遞需要的參數。一般情況下,只需要提供SELECT語句和連接字符串創建SqlDataAdapter對象,然後利用SqlCommandBuilder對象生成InsertCommand、UpdateCommand和DeleteCommand屬性。

四、DataTable對象

ADO.NET可以在與數據庫斷開連接的方式下通過DataSet或DataTable對象進行數據處理,當需要更新數據時才重新與數據源進行連接,並更新數據源。DataTable對象表示保存在本機內存中的表,它提供了對表中行列數據對象的各種操作。可以直接將數據從數據庫填充到DataTable對象中,也可以將DataTable對象添加到現有的DataSet對象中。在斷開連接的方式下,DataSet對象提供了和關系數據庫一樣的關系數據模型,代碼中可以直接訪問DataSet對象中的DataTable對象,也可以添加、刪除DataTable對象。

1. 創建DataTable對象

可以通過以下兩種方式創建DataTable對象:

1) 通過DataTable類的構造函數創建DataTable對象,例如:

DataTable table = new DataTable();

2) 通過DataSet的Tables對象的Add方法創建DataTable對象,例如:

DataSet dataset = new DataSet();

DataTable table = dataset.Tables.Add("MyTableName");

2. 在DataTable對象中添加列

在DataTable對象中添加列的最常用的方法是通過DataTable對象的Column屬性中的Add方法。添加後的每一列都是一個DataColumn對象。

3. 設置DataTable對象的主鍵

關系數據庫中的表一般都有一個主鍵,用來惟一標識表中的每一行記錄。通過DataTable對象的PrimaryKey屬性可以設置Datatable的主鍵。主鍵可以是一個或者多個DataColumn對象組成的數組。例如:

DataColumn[] key = new DataColumn[1];//dt是一個DataTable對象

key[0] = dt.Columns[0];

dt.PrimaryKey = key;

4. 在DataTable對象中創建行

DataTable對象的每一行都是一個DataRow對象,所以創建行時可以先利用DataTable對象的NewRow方法創建一個DataRow對象,並設置新行中各列的數據,然後利用Add方法將DataRow對象添加到表中

5. 將SQL Server數據庫中的表填充到DataTable中

除了可以直接創建DataTable對象的行列信息外,也可以通過DateAdapter對象的Fill方法將SQL Server數據庫中的表填充到DataTable對象中。

五、DataSet對象

1. 創建DataSet對象

使用創建的DataSet對象可以完成各種數據操作,利用向導生成的數據庫數據源是一個強類型的DataSet以及一對或多對強類型的DataTable和TableAdapter的組合。類型化的DataSet是一個生成的類,是從.NET Framework的一般DataSet類衍生來的,但提供了已定義的架構以及特定於該架構的屬性和方法。同時,對於DataSet中的每個表,還生成了特定於該DataSet的附加衍生類,而且每個類都為相關的表提供了特定的架構、屬性和方法。

當然,也可以直接創建一般的DataSet對象,例如:

DataSet myDataset = new DataSet();

2. 填充DataSet對象

創建DataSet後,就可以使用SqlDataAdapter對象把數據導入到DataSet對象中,比如通過Fill方法將數據填充到DataSet中的某個表中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved