.NET SQL Server連接字符串句法 數(shù)據(jù)庫(kù)的連接性已經(jīng)發(fā)展成為應(yīng)用程序開(kāi)發(fā)的一個(gè)標(biāo)準(zhǔn)方面。數(shù)據(jù)庫(kù)連接字符串現(xiàn)在已經(jīng)成為每個(gè)項(xiàng)目的標(biāo)準(zhǔn)必備條件。我發(fā)現(xiàn)自己為了找到所需要的句法,經(jīng)常要從另外一個(gè)應(yīng)用程序中復(fù)制連接字符串或者進(jìn)行一次搜索。這個(gè)在與SQL Server交互操作時(shí)更是如此,因?yàn)樗刑嗟倪B接字符串選項(xiàng)?,F(xiàn)在就讓我們來(lái)研究一下連接字符串的眾多方面。
連接字符串 在對(duì)象實(shí)例化或者建立期間,數(shù)據(jù)庫(kù)連接字符串通過(guò)屬性或方法被傳遞到必要的對(duì)象。連接字符串的格式是一個(gè)以分號(hào)為界,劃分鍵/值參數(shù)對(duì)的列表。列表A中包括了一個(gè)C#中的例子,說(shuō)明了怎樣用創(chuàng)建SqlConnection對(duì)象的方法連接到SQL Server(實(shí)際的連接字符串是通過(guò)對(duì)象的ConnectionString屬性分配的)。列表B中包括的是VB.NET的版本。
引用內(nèi)容: string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"; SqlConnectionconn = new SqlConnection(); conn.ConnectionString = cString; conn.Open();
引用內(nèi)容: Dim cString As String cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;" Dim conn As SqlConnection = New SqlConnection() conn.ConnectionString = cString conn.Open()
連接字符串會(huì)指定數(shù)據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù),以及訪問(wèn)數(shù)據(jù)庫(kù)必需的用戶名和密碼。但是這種格式并不是對(duì)所有數(shù)據(jù)庫(kù)交互都適用,它的確有許多可用的選項(xiàng),其中很多選項(xiàng)都有同義詞。和Data Source(數(shù)據(jù)源)、Initial Catalog(初始編目)、User ID(用戶ID)、和Password(密碼)等元素一起,下面這些選項(xiàng)都是可用的:
* Application Name(應(yīng)用程序名稱):應(yīng)用程序的名稱。如果沒(méi)有被指定的話,它的值為.NET SqlClient Data Provider(數(shù)據(jù)提供程序).
* AttachDBFilename/extended properties(擴(kuò)展屬性)/Initial File Name(初始文件名):可連接數(shù)據(jù)庫(kù)的主要文件的名稱,包括完整路徑名稱。數(shù)據(jù)庫(kù)名稱必須用關(guān)鍵字?jǐn)?shù)據(jù)庫(kù)指定。
* Connect Timeout(連接超時(shí))/Connection Timeout(連接超時(shí)):一個(gè)到服務(wù)器的連接在終止之前等待的時(shí)間長(zhǎng)度(以秒計(jì)),缺省值為15。
* Connection Lifetime(連接生存時(shí)間):當(dāng)一個(gè)連接被返回到連接池時(shí),它的創(chuàng)建時(shí)間會(huì)與當(dāng)前時(shí)間進(jìn)行對(duì)比。如果這個(gè)時(shí)間跨度超過(guò)了連接的有效期的話,連接就被取消。其缺省值為0。
* Connection Reset(連接重置):表示一個(gè)連接在從連接池中被移除時(shí)是否被重置。一個(gè)偽的有效在獲得一個(gè)連接的時(shí)候就無(wú)需再進(jìn)行一個(gè)額外的服務(wù)器來(lái)回運(yùn)作,其缺省值為真。
* Current Language(當(dāng)前語(yǔ)言):SQL Server語(yǔ)言記錄的名稱。
* Data Source(數(shù)據(jù)源)/Server(服務(wù)器)/Address(地址)/Addr(地址)/Network Address(網(wǎng)絡(luò)地址):SQL Server實(shí)例的名稱或網(wǎng)絡(luò)地址。
* Encrypt(加密):當(dāng)值為真時(shí),如果服務(wù)器安裝了授權(quán)證書,SQL Server就會(huì)對(duì)所有在客戶和服務(wù)器之間傳輸?shù)臄?shù)據(jù)使用SSL加密。被接受的值有true(真)、false(偽)、yes(是)和no(否)。
* Enlist(登記):表示連接池程序是否會(huì)自動(dòng)登記創(chuàng)建線程的當(dāng)前事務(wù)語(yǔ)境中的連接,其缺省值為真。
* Database(數(shù)據(jù)庫(kù))/Initial Catalog(初始編目):數(shù)據(jù)庫(kù)的名稱。
* Integrated Security(集成安全)/Trusted Connection(受信連接):表示W(wǎng)indows認(rèn)證是否被用來(lái)連接數(shù)據(jù)庫(kù)。它可以被設(shè)置成真、偽或者是和真對(duì)等的sspi,其缺省值為偽。
* Max Pool Size(連接池的最大容量):連接池允許的連接數(shù)的最大值,其缺省值為100。
* Min Pool Size(連接池的最小容量):連接池允許的連接數(shù)的最小值,其缺省值為0。
* Network Library(網(wǎng)絡(luò)庫(kù))/Net(網(wǎng)絡(luò)):用來(lái)建立到一個(gè)SQL Server實(shí)例的連接的網(wǎng)絡(luò)庫(kù)。支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP)。協(xié)議的動(dòng)態(tài)鏈接庫(kù)必須被安裝到適當(dāng)?shù)倪B接,其缺省值為TCP/IP。
* Packet Size(數(shù)據(jù)包大?。河脕?lái)和數(shù)據(jù)庫(kù)通信的網(wǎng)絡(luò)數(shù)據(jù)包的大小。其缺省值為8192。 * Password(密碼)/Pwd:與帳戶名相對(duì)應(yīng)的密碼。
* Persist Security Info(保持安全信息):用來(lái)確定一旦連接建立了以后安全信息是否可用。如果值為真的話,說(shuō)明像用戶名和密碼這樣對(duì)安全性比較敏感的數(shù)據(jù)可用,而如果值為偽則不可用。重置連接字符串將重新配置包括密碼在內(nèi)的所有連接字符串的值。其缺省值為偽。
* Pooling(池):確定是否使用連接池。如果值為真的話,連接就要從適當(dāng)?shù)倪B接池中獲得,或者,如果需要的話,連接將被創(chuàng)建,然后被加入合適的連接池中。其缺省值為真。
* User ID(用戶ID):用來(lái)登陸數(shù)據(jù)庫(kù)的帳戶名。 * Workstation ID(工作站ID):連接到SQL Server的工作站的名稱。其缺省值為本地計(jì)算機(jī)的名稱。
下面的連接字符串用一個(gè)受信連接和指定的登陸證書(不及管理員密碼空缺安全),在Test\Dev1服務(wù)器上與Northwind數(shù)據(jù)庫(kù)建立連接: 引用內(nèi)容: Server=Test\Dev1;Database=Northwind;User ID=sa; Password=;Trusted_Connection=True; 下一個(gè)連接字符串使用了TCIP/IP 和一個(gè)指定的IP地址: 引用內(nèi)容: Data Source=192.162.1.100,1433;Network Library=DBMSSOCN; Initial Catalog=Northwind;User ID=sa;Password=; 所使用的選項(xiàng)可以很容易地包括在連接字符串中,但是它們還是取決于你的應(yīng)用程序和它的要求。知道什么是可用的是很有好處的,這樣你就可以恰當(dāng)?shù)厥褂盟?
使用ADO.NET 2.0 ADO.NET 2.0為每一個(gè).NET框架的數(shù)據(jù)提供程序引進(jìn)了新的連接字符串生成器。關(guān)鍵詞作為屬性被列出,使得連接字符串句法在提交到數(shù)據(jù)源之前就生效。也還有新的類可以使連接字符串在配置文件中的存儲(chǔ)和檢索變得簡(jiǎn)單,并且用受保護(hù)的方式將它們加密。 或多或少,正是你需要的。 通過(guò).NET應(yīng)用程序連接到SQL Server為特定的連接參數(shù)和其他選項(xiàng)提供了多種選擇。它可以像指定數(shù)據(jù)庫(kù)、服務(wù)器和登錄憑據(jù)那樣簡(jiǎn)單,也可能像設(shè)置緩沖連接池和安全選項(xiàng)一樣復(fù)雜。 ADO.NET 2.0的確通過(guò)數(shù)據(jù)庫(kù)類使得連接字符串選項(xiàng)具有了更大的靈活性。你只需使用應(yīng)用程序所需要的選項(xiàng),不必理會(huì)其他的。而且,如果你發(fā)現(xiàn)自己身陷困境,記不得連接字符串句法了
|