如何使用connection物件連線資料庫?
對於不同的.net資料提供者,ado.net採用不同的connection物件連線資料庫。這些connection物件為我們遮蔽了具體的實現細節,並提供了一種統一的實現方法。
connection類有四種:sqlconnection,oledbconnection,odbcconnection和oracleconnection。
sqlconnection類的物件連線sql server資料庫;oracleconnection 類的物件連線oracle資料庫;oledbconnection類的物件連線支援ole db的資料庫,如access;而odbcconnection類的物件連線任何支援odbc的資料庫。與資料庫的所有通訊最終都是通過connection物件來完成的。
sqlconnection類
connection 用於與資料庫「對話」,並由特定提供程式的類(如 sqlconnection)表示。儘管sqlconnection類是針對sql server的,但是這個類的許多屬性、方法與事件和oledbconnection及odbcconnection等類相似。
注意:使用不同的connection物件需要匯入不同的命名空間。oledbconnection的命名空間為system.data.oledb。sqlconnection的命名空間為system.data.sqlclient。odbcconnection的命名空間為system.data.odbc。oracleconnection的命名空間為system.data.oracleclinet。
我們就可以使用如下兩種方式連線資料庫,即採用整合的windows驗證和使用sql server身份驗證進行資料庫的登入。
1、整合的windows身份驗證語法範例
string constr = "server=.;database=myschool;integrated security=sspi";
說明:程式**中,設定了乙個針對sql server資料庫的連線字串。其中server表示執行sql server的計算機名,由於程式和資料庫系統是位於同一臺計算機的,所以我們可以用.(或localhost)取代當前的計算機名。database表示所使用的資料庫名(myschool)。由於我們希望採用整合的windows驗證方式,所以設定 integrated security為sspi即可。
2、sql server 2005中的windows身份驗證模式如下:
string constr = "server=.;database=myschool;uid=sa;pwd=sa";
說明:程式**中,採用了使用已知的使用者名稱和密碼驗證進行資料庫的登入。資料庫連線字串是不區分大小寫的。uid為指定的資料庫使用者名稱,pwd為指定的使用者口令。為了安全起見,一般不要在**中包括使用者名稱和口令,你可以採用前面的整合的windows驗證方式或者對web.config檔案中的連線字串加密的方式提高程式的安全性。
3、sql server 2005中的sql server身份驗證模式如下:
string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
說明:程式**中data source 表示執行資料庫對應的計算機名,initial catalog表示所使用的資料庫名。uid為指定的資料庫使用者名稱,pwd為指定的使用者口令。
4、access資料庫的連線字串的形式如下:
string connectionstring =@"provider=microsoft.jet.oledb.4.0;data source=c:\datasource\myschool.mdb";
說明:程式**中,通過專門針對access資料庫的ole db提供程式,實現資料庫的連線。這使用的的ole db提供程式為microsoft.jet.oledb.4.0,並且資料庫存放在c:\datasource目錄下,其資料庫檔案為myschool.mdb。
[csharp]view plain
copy
string constr = "server=.;database=myschool;integrated security=sspi";
//string constr = "server=.;database=myschool;uid=sa;pwd=sa";
//string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
sqlconnection con = new sqlconnection(constr);
// con.connectionstring = constr;
string sql = "select count(*) from grade";
sqlcommand com = new sqlcommand(sql,con);
try
,條記錄", x));
} catch (exception)
finally
5、web.config 配置
在asp.net 2.0中,使用了一種在執行時解析為連線字串值的新的宣告性表示式語法,按名稱引用資料庫連線字串。連線字串本身儲存在 web.config 檔案中的 <connectionstrings>配置節下面,以便易於在單個位置為應用程式中的所有頁進行維護。
[csharp]view plain
copy
<?xml version="1.0"?>
"myschool" connectionstring="server=localhost;integrated security=true;database=myschool;persist security info=true" providername="system.data.sqlclient" />
"default"/>
我們也可以用下面的方式從配置檔案直接讀取資料庫連線字串。首先我們需要引用using system.web.configuration命名空間,該命名空間包含用於設定 asp.net 配置的類。string connectionstring =configurationmanager.connectionstrings["myschool"].connectionstring;
首先你應該區分windows驗證與sql自身的驗證的區別。
windows驗證就是sqlserver伺服器使用windows自帶的驗證系統,如果你指定sqlserver內windows的乙個組有訪問的許可權,那麼加入此組的windows使用者都有訪問資料庫的許可權。此驗證有個缺點,就是如果不是在域模式下,無法加入遠端計算機的使用者,所以如果使用c/s方式寫程式的話,使用windows驗證無法使本地計算機的windows帳戶訪問遠端資料庫伺服器。
sql驗證就簡單多了,就是使用sqlserver的企業管理器中自己定義由sql控制的使用者,指定使用者許可權等。這個帳戶資訊是由sqlserver自己維護的,所以sqlserver更換計算機後資訊不會丟失,不用重新設定。
所以如果你的專案使用在乙個比較大的網路中,而且對安全要求比較高,那麼應該建立域,使用windows驗證,而且要與系統管理員配合詳細設定可以訪問sqlserver的windows帳戶。如果使用乙個小網路,而且此網路僅用來使用專案,對安全沒有高要求,那麼使用sqlserver驗證,而且更新,公升級等都方便。
windows驗證與sqlserver驗證的資料庫聯接字串是不同的。
C 連線資料庫
using system using system.data using system.data.sqlclient using system.windows.forms namespace testc public void open catch exception e public void c...
c 連線資料庫
根據查詢結果儲存在資料庫伺服器端還是本地客戶端,可分兩種連線資料庫的方式 那麼這兩種方式的好壞 查詢結果儲存在資料庫伺服器 之所以要儲存在資料庫伺服器端,是因為一旦查詢結果資料量大,如果儲存在本地會占用大量的記憶體,所以該方式的優點是不佔記憶體。但對 於 資料量小情況下,還要時刻與資料庫保持連線,一...
C 連線資料庫
用sqlconnection連線sql server資料庫 引用 using dystem.data.sqlclient string constring data source ip位址 initial catalog 資料庫名稱 user id 使用者名稱 password 密碼 persist...