上方廣告

Lady Kukki 手作糖霜餅乾

2009年2月23日 星期一

ADO.NET 建立連線字串

程式中建立Dbconnection物件時,需提供連線字串、資料庫伺服器、名稱、安全性資訊,以下為連線字串的索引鍵。
Application Name:應用程式名稱,若沒有提供,預設為 .Net SqlClient Data Provider。

AttachDBFilename :也可寫為 extended properties 或 Initaial File Name,資料庫檔案的名稱,需包含完整路徑,可搭配 |DataDirectory| 來設定相對路徑。且資料庫不能是唯讀,不支援HTTP格式。


Connection Timeout:也可寫為Connect Timeout,連線逾期時間,預設秒數為15秒。

Data Source:也可寫成 Server 或 Address 或 Addr 或 Network Address ,資料庫所在位置,一般通常為資料庫所在主機名稱,localhost 或 local 若是檔案行資料庫則為檔案所在路徑及名稱;在網路連線方面,匿名管道設定為 server=tcp:Name,Port 。

Initial Catalong:也可寫成 Database,資料庫名稱。
#若使用Data Source 必須搭配 Initial Catalog;使用 Sercer 則必須搭配 Database

User ID:也可寫成 uid ,登入資料庫伺服器所使用的帳號,以安全性需求為考量,儘量以整合式驗證取代。

Password:也可寫成 pwd,登入資料庫伺服器的使用者密碼。

Integrated Security:也可寫成 Trusted_Connection,可以設定為 true(SSPI)、false,SQL Server 允許使用Windows作業系統整合驗證,檢查使用的帳號是否被授與存取資料庫的權限。
#資料提供者   語法
#SqlClient Integrated Security=true
#SqlClient、OleDb Integrated Security=SSPI
#Odbc Trusted_Connection=yes
#OracleClient Integrated Security=yes

Async:是否啟用非同步資料操作,預設為False。

Encrypt:若設為True,將強制SQL Server 自動採用SSL,但必須先安裝憑證,預設為False。

Enlist:將目前連線加入交易之中。

MultipleActiveResultSets:若設為True,代表一條資料連線可以,可以讓其他命令共同使用。

Max Pool Size:連線集區的最大值。

Min Pool Size:連線集區的最小值。

Packet Size:資料傳送的封包大小,例如2096。

Workstation Id:連線的客戶端電腦名稱。

Pooling:允許將連線物件至入集區,以加快質性效能,SqlClient專用。

Persist Security Info:連線開啟後,回傳密碼資訊,建議設為 false 較為安全。

Dbconnection物件常用屬性

ConnectionString:設定連線到資料庫的資訊,如帳號、密碼、資料庫等...,為字串型別。
ConnectionTimeout:連線逾期時間,整數型別。

Database:回傳資料庫名稱,字串型別。

DataSource:回傳資料庫主機名稱,字串型別。

ServerVersion:回傳資料來源的版本,字串型別。

State:目前連線狀況 ConnectionState.Open 或 Close。

使用OleDbConnection物件建立物件必須在前面加入 Provider=OLE DB 資料提供者的名稱

#OLE DB資料來源 提供者名稱
SQL Server SQLNCLI
SQL Server7以上版本 SQLNCLI.1
Oracle MSDAORA
Oracle 8以上版本 OraOLEDB.Oracle
Access/Jet Microsoft.Jet.OLEDB.4.0
ODBC資料來源 MSDASQL
檔案系統 MSIDXS
Excel工作表 Microsoft.Jet.OLEDB.4.0
IBM DB2資料庫 DB2OLEDB

ADO.NET提供一個DbConnectionStringBuilder物件,可以正確設定連線字串中的索引值。根據不同的類別來引用適當的命名空間,大部份分為以下四種。

System.Data.SqlClient.SqlConnectionStringBuilder
System.Data.OleDb.OleDbConnectionStringBuilder
System.Data.Odbc.OdbcConnectionStringBuilder
System.Data.OracleClient.OracleConnectionStringBuilder

使用方式如下
Dim builder As New DbConnectionStringBuilder()
builder.Add("Data Source","(local)")
builder.Add("integrated security",True)
....
'讀取連線字串
builder.ConnectionString
'讀取內容值
builder("Data Source")