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

來源:互聯網
上載者:User

標籤:archive   title   資料庫   value   檔案   sql   不同   密碼   信任   

摘要

      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(); 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.