C# 是如何跟SQL Server進行連線的?
在C#/.NET程式設計中,離不開ADO.NET。ADO.NET是.NET連線資料庫的重要元件。使用其可以很方便地訪問資料庫,ADO.NET還可以訪問Oracle資料庫、Access資料庫、SQL Server資料庫等主流的資料庫。使用ADO.NET連線資料庫主要使用ADO.NET中的5個類。
資料庫連線類Connection:如果連線SQLServer資料庫,可以使用SqlConnetion類。在使用SqlConnection類是要引用一個System.Data.SqlClient的名稱空間。
資料庫命令類Command:
資料庫讀取類DataReader:如果連線SQLServer資料庫,可以使用SqlDataReader。資料庫讀取類是資料庫命令類在執行了查詢操作後返回的結果的資料型別。資料庫讀取類只是資料庫的連線狀態處於開啟狀態時才能使用,當資料庫關閉時資料庫讀取類中就不能夠再取值了。
資料集類DataSet:資料集相當於一個虛擬資料庫,每一個數據集中包括了多張資料表。即使資料庫的連線處於斷開狀態,還是可以從資料集中繼續存取記錄,只是資料是存放在資料集中的,並沒有存放在資料庫中。
資料適配類DataAdapter:如果連線SQLServer資料庫,可以使用SqlDataAdapter。資料介面卡經常和資料集一起使用,通過資料介面卡可以把資料庫中的資料存放到資料集中,資料介面卡可以說是資料集和資料庫之間的一個橋樑。
1、使用SQL使用者名稱、密碼驗證
(a)Data Source = 伺服器名;Initial Catalog = 資料庫名;User ID = 使用者名稱;Pwd = 密碼(沒有密碼可以省略)
(b)sql server 身份驗證 連線字串String connsql = "server=伺服器名稱;uid=登入名稱;pwd=登入密碼;database=資料庫名稱";
例如:public string connString = "Data Source=xp;Initial Catalog=ExpressManager;User ID = sa;Pwd = 123";
2、使用windows身份驗證
(a)Data Source = 伺服器名;Initial Catalog = 資料庫名;Integrated Security = TRUE(或者:SSPI)
(b)windows 身份驗證連線字串 String connsql = "server=伺服器名稱;database=資料庫名稱;Trusted_Connection=SSPI";
例如:public string connString = "Data Source=xp;Initial Catalog=ExpressManager;Integrated Security=TRUE";
在身份驗證可以選SQL 使用者名稱、密碼驗證。
接下來就是在原始檔里加入連線資料庫的程式碼,首先得在xxx.cs原始檔中加入以下語句
using System.Data;
using System.Data.SqlClient;
接下來就是對資料庫的操作類方法的實現:
[csharp] view plain copy print ?- //資料庫操作類
- classExpress
- {
- publicstringconnString="DataSource=xp;InitialCatalog=ExpressManager;IntegratedSecurity=TRUE";
- //建立連線物件的變數
- publicSqlConnectionconn;
- //執行對資料表中資料的增加、刪除、修改操作
- publicintNonQuery(stringsql)
- {
- conn=newSqlConnection(connString);
- inta=-1;
- try
- {
- conn.Open();//開啟資料庫
- SqlCommandcmd=newSqlCommand(sql,conn);
- a=cmd.ExecuteNonQuery();
- }
- catch
- {
- }
- finally
- {
- if(conn.State==ConnectionState.Open)
- {
- conn.Close();//關閉資料庫
- }
- }
- returna;
- }
- //執行對資料表中資料的查詢操作
- publicDataSetQuery(stringsql)
- {
- conn=newSqlConnection(connString);
- DataSetds=newDataSet();
- try
- {
- conn.Open();//開啟資料庫
- SqlDataAdapteradp=newSqlDataAdapter(sql,conn);
- adp.Fill(ds);
- }
- catch
- {
- }
- finally
- {
- if(conn.State==ConnectionState.Open)
- conn.Close();//關閉資料庫
- }
- returnds;
- }
- }