ADO.NET入門教程(三) 連接字符串,你小覷了嗎?


摘要

      ADO.NET強大的優勢在於對不同的數據源提供一致的訪問。在上一篇文章《你必須知道的ADO.NET(二)了解.NET數據提供程序》中,我們知道.NET對不同數據源,使用不同的數據提供程序,這使得我們可以更高效的訪問相應的數據源。除了.NET數據提供程序外,我還得說說另外一位功臣:連接字符串(Connection Strings),它也為ADO.NET在解決“不同”與“一致”的矛盾中,貢獻出了非常重要的力量。


 

目錄


1. 什么是連接字符串?

      我們已經知道,ADO.NET類庫為不同的外部數據源提供了一致的訪問。這些數據源可以是本地的數據文件(如excel、txt、access,甚至是SQLite),也可以是遠程的數據庫服務器(如SQL Server、MySQL、DB2、Oracle等)。數據源似乎琳琅滿目,魚龍混雜。請試想一下,ADO.NET如何能夠准確而又高效的訪問到不同數據源呢?在上一篇《你必須知道的ADO.NET(二)了解.NET數據提供程序》中,你或許已經清楚,ADO.NET已經為不同的數據源編寫了不同的數據提供程序。但是這個前提是,我們得訪問到正確的數據源。否則的話,只會“張冠李戴,驢頭不對馬嘴”。就好比,我們用SQL Server數據提供程序去處理excel數據源,結果肯定是讓人“瞠目結舌”的。英雄總在最需要的時候出現,連接字符串,就是這樣一組被格式化的鍵值對:它告訴ADO.NET數據源在哪里,需要什么樣的數據格式,提供什么樣的訪問信任級別以及其他任何包括連接的相關信息。哦!如果你這樣想的話,那么以后你使用連接字符串的時候,或許就不會小覷了吧!

 

2.理解語法格式

      其實,連接字符串雖然影響深遠,但是其本身的語法卻是十分的簡單。連接字符串由一組元素組成,一個元素包含一個鍵值對,元素之間由“;”分開。語法如下:

key1=value1;key2=value2;key3=value3...

      典型的元素(鍵值對)應當包含這些信息:數據源是基於文件的還是基於網絡的數據庫服務器,是否需要賬號密碼來訪問數據源,超時的限制是多少,以及其他相關的配置信息。我們知道,值(value)是根據鍵(key)來確定的,那么鍵(key)如何來確定呢?語法並沒有規定鍵(key)是什么,這需要根據你需要連接的數據源來確定的。在下一節中,我將詳細講解幾種常用的連接字符串。

提示:如果需要了解更多連接字符串的格式,可以參考 http://www.connectionstrings.com/

 

3.例舉幾種典型連接字符串

3.1 SQL Sever連接字符串

(1)標准的安全連接

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

說明:

Data Source:需要連接的服務器。需要注意的是,如果使用的時Express版本的SQL Server需要在服務器名后加\SQLEXPRESS。例如,連接本地的SQL Server 2008 Express版本的數據庫服務器,可以寫成Data Source = (local)\SQLEXPRESS或者.\SQLEXPRESS。

Initial Catalog:默認使用的數據庫名稱。

User ID:數據庫服務器賬號。

Password:數據庫服務器密碼。

或者也可以寫成這樣:

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

(2)可信連接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

說明:

Data Source:與上述相同

Initial Catalog:與上述相同。

Integrate Security:使用存在的windows安全證書訪問數據庫。

或者也可以寫成這樣:

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

 

3.2 Access連接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

 

3.3 MySQL連接字符串

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

 

3.4 DB2連接字符串

Server=myAddress:myPortNumber;Database=myDataBase;UID=myUsername;PWD=myPassword;

 

3.5 Oracle連接字符串

Data Source=TORCL;User Id=myUsername;Password=myPassword;

 

4.如何構造連接字符串?

      在上面我們知道,連接字符串本質上就是一個字符串,因此我們完全可以用

string connStr = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword";

來構造一個連接字符串。實際上,ADO.NET有一個專門的類來處理連接字符串:DbConnectionStringBuilder。DbConnectionStringBuilder類為強類型連接字符串生成基類。之所以要有這樣一個類,是因為它更加安全與友好。以SQL Server為例,可以這樣構建一個連接字符串:

1 SqlClient.SqlConnectionStringBuilder builder =
2 new SqlClient.SqlConnectionStringBuilder();
3 builder.DataSource = @"(local)\SQLEXPRESS";
4 builder.InitialCatalog = "myDataBase";
5 builder.IntegratedSecurity = true;

 

5.在配置文件中存儲連接字符串

      在我們實際開發中,我們一般不會把連接字符串直接寫在代碼中,而是存儲在配置文件里。把連接字符串寫死在代碼中,不便於維護,每次修改字符串時,還得重新編譯代碼。以ASP.NET應用程序為例,我們一般把連接字符串寫在web.config配置文件的<connectionstrings />節點。例如:

1 <connectionStrings>
2 <add name="connStr" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=myDataBase;Integrated Security=SSPI" />
3 </connectionStrings>

      因此,我們只需要在程序中添加相應代碼來獲取配置文件中的值,比如:

string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString(); 

      當然,你可以在配置文件的<appsettings />節點下添加連接字符串,獲取字符串值的方法類似。在下一篇文章中,我將講解如何連接數據庫,希望大家多多關注。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM