建站學院(LieHuo.Net)編程綜合 數據庫的連接性已經發展成為應用程序開發的一個標準方面。數據庫連接字符串現在已經成為每個項目的標準必備條件。我發現自己為了找到所需要的句法,經常要從另外一個應用程序中復制連接字符串或者進行一次搜索。這個在與SQL Server交互操作時更是如此,因為它有太多的連接字符串選項。現在就讓我們來研究一下連接字符串的眾多方面。
連接字符串 在對象實例化或者建立期間,數據庫連接字符串通過屬性或方法被傳遞到必要的對象。連接字符串的格式是一個以分號為界,劃分鍵/值參數對的列表。列表A中包括了一個C#中的例子,說明了怎樣用創建SqlConnection對象的方法連接到SQL Server(實際的連接字符串是通過對象的ConnectionString屬性分配的)。列表B中包括的是VB.NET的版本。
以下為引用的內容: string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"; SqlConnectionconn = new SqlConnection(); conn.ConnectionString = cString; |
以下為引用的內容: 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() |
連接字符串會指定數據庫服務器和數據庫,以及訪問數據庫必需的用戶名和密碼。但是這種格式并不是對所有數據庫交互都適用,它的確有許多可用的選項,其中很多選項都有同義詞。和Data Source(數據源)、Initial Catalog(初始編目)、User ID(用戶ID)、和Password(密碼)等元素一起,下面這些選項都是可用的:
以下為引用的內容: * Application Name(應用程序名稱):應用程序的名稱。如果沒有被指定的話,它的值為.NET SqlClient Data Provider(數據提供程序). * AttachDBFilename/extended properties(擴展屬性)/Initial File Name(初始文件名):可連接數據庫的主要文件的名稱,包括完整路徑名稱。數據庫名稱必須用關鍵字數據庫指定。 * Connect Timeout(連接超時)/Connection Timeout(連接超時):一個到服務器的連接在終止之前等待的時間長度(以秒計),缺省值為15。 * Connection Lifetime(連接生存時間):當一個連接被返回到連接池時,它的創建時間會與當前時間進行對比。如果這個時間跨度超過了連接的有效期的話,連接就被取消。其缺省值為0。 * Connection Reset(連接重置):表示一個連接在從連接池中被移除時是否被重置。一個偽的有效在獲得一個連接的時候就無需再進行一個額外的服務器來回運作,其缺省值為真。 * Current Language(當前語言):SQL Server語言記錄的名稱。 * Data Source(數據源)/Server(服務器)/Address(地址)/Addr(地址)/Network Address(網絡地址):SQL Server實例的名稱或網絡地址。 * Encrypt(加密):當值為真時,如果服務器安裝了授權證書,SQL Server就會對所有在客戶和服務器之間傳輸的數據使用SSL加密。被接受的值有true(真)、false(偽)、yes(是)和no(否)。 * Enlist(登記):表示連接池程序是否會自動登記創建線程的當前事務語境中的連接,其缺省值為真。 * Database(數據庫)/Initial Catalog(初始編目):數據庫的名稱。 * Integrated Security(集成安全)/Trusted Connection(受信連接):表示Windows認證是否被用來連接數據庫。它可以被設置成真、偽或者是和真對等的sspi,其缺省值為偽。 * Max Pool Size(連接池的最大容量):連接池允許的連接數的最大值,其缺省值為100。 * Min Pool Size(連接池的最小容量):連接池允許的連接數的最小值,其缺省值為0。 * Network Library(網絡庫)/Net(網絡):用來建立到一個SQL Server實例的連接的網絡庫。支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP)。協議的動態鏈接庫必須被安裝到適當的連接,其缺省值為TCP/IP。 * Packet Size(數據包大小):用來和數據庫通信的網絡數據包的大小。其缺省值為8192。 * Password(密碼)/Pwd:與帳戶名相對應的密碼。 * Persist Security Info(保持安全信息):用來確定一旦連接建立了以后安全信息是否可用。如果值為真的話,說明像用戶名和密碼這樣對安全性比較敏感的數據可用,而如果值為偽則不可用。重置連接字符串將重新配置包括密碼在內的所有連接字符串的值。其缺省值為偽。 * Pooling(池):確定是否使用連接池。如果值為真的話,連接就要從適當的連接池中獲得,或者,如果需要的話,連接將被創建,然后被加入合適的連接池中。其缺省值為真。 * User ID(用戶ID):用來登陸數據庫的帳戶名。 * Workstation ID(工作站ID):連接到SQL Server的工作站的名稱。其缺省值為本地計算機的名稱。 |
以下為引用的內容: Server=TestDev1;Database=Northwind;User ID=sa; Password=;Trusted_Connection=True; |
以下為引用的內容: Data Source=192.162.1.100,1433;Network Library=DBMSSOCN; Initial Catalog=Northwind;User ID=sa;Password=; |
通過.NET應用程序連接到SQL Server為特定的連接參數和其他選項提供了多種選擇。它可以像指定數據庫、服務器和登錄憑據那樣簡單,也可能像設置緩沖連接池和安全選項一樣復雜。 ADO.NET 2.0的確通過數據庫類使得連接字符串選項具有了更大的靈活性。你只需使用應用程序所需要的選項,不必理會其他的。而且,如果你發現自己身陷困境,記不得連接字符串句法了