資料庫連接字串一 (採用windows身分識別驗證模式):
m_pConn->ConnectionString = "Provider = SQLOLEDB.1;Integrated Security = SSPI;Persist Security Info = False;Initial Catalog = Northwind;Data Source = DBSERVER";
資料庫連接字串二 (採用windows身分識別驗證模式,串連資料庫執行個體SQLEXPRESS):
m_pConn->ConnectionString = "Provider = SQLOLEDB.1;Integrated Security = SSPI;Persist Security Info = False;Initial Catalog = Northwind;Data Source = DBSERVER\SQLEXPRESS";
資料庫連接字串三 (採用SQL SERVER 驗證模式):
m_pConn->ConnectionString = "Provider = SQLOLEDB.1;Persist Security Info = False;User ID = sa ;Password = pwd;Initial Catalog = Northwind;Data Source=DBSERVER";
資料庫連接字串四 (串連ACCESS資料庫):
m_pConn->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
oracle 資料庫連接
微軟提供的Oracle標準串連是:
strConnect = _T("Provider=MSDAORA;Data Source=serverName;User ID=userName; Password=userPassword;");
Oracle公司提供的串連方式:
使用標準安全層級:
strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;");
使用信任連接
1.strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;"); UID為'/'
2.strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;");使用OSAuthent=1
解析:
1.Provider=SQLOLEDB.1:提供者為SQLOLEDB;如果用 ACCESS97建立的資料庫,需要改為:Provider=Microsoft.Jet.OLEDB.3.51; ACCESS2000的話為, Provider=Microsoft.Jet.OLEDB.4.0;
2.Integrated Security=SSPI:
整合安全機制採用SSPI
SSPI是Security Support Provider Interface(Microsoft安全支援提供器介面)SSPI是定義得較全面的公用API,用來獲得驗證、資訊完整性、資訊隱私等整合安全服務,以及用於所有分布式應用程式協議的安全方面的服務。設定Integrated Security為 True 的時候,採用windows身分識別驗證模式。只有設定為 False 或省略該項的時候,採用 UserID, PW 來串連,預設值為False,此時在連接字串中可省略此項。Integrated Security 可以設定為: True, False, Yes, No ,還可以設定為:SSPI ,相當於 True,建議用SSPI代替 True。
3.Persist Security Info:堅持安全資訊
Persist Security Info屬性的意思是表示是否儲存安全資訊,其實可以簡單的理解為"ADO在資料庫連接成功後是否儲存密碼資訊",True表示儲存,False表示不儲存.ADO預設為False.
4.Initial Catalog = Northwind; Initial Catalog 的值為初始資料庫名;
5.Data Source = DBSERVER; Data Source 的值為 SQL伺服器名,或為伺服器IP地址;
在Data Source裡, 可以用localhost, 也可以用(local). 最後就是有人用127.0.0.1,還可以用一個點 '.'(沒用引號) 來表示本機伺服器。
參數說明:
1.Data Source
SqlConnectionStringBuilder的DataSource屬性,對應connectionString中的Data Source,“Data Source”可以由下列字串代替:
“server”,“address”,“addr”和“network address”。Data Source=.\SQLExpress也可以寫成這樣Data Source=(local)\SQLExpress。
2.Integrated Security
SqlConnectionStringBuilder的IntegratedSecurity屬性,對應connectionString中的Integrated Security,“Integrated Security”可以
寫成“trusted_connection”,為true時,使用當前的 Windows 帳戶憑據進行身分識別驗證,為false時,需要在串連中指定使用者識別碼 和密碼。
3.AttachDBFilename
SqlConnectionStringBuilder的AttachDBFilename屬性,對應connectionString中的AttachDBFilename,“AttachDBFilename”可以寫成“extended properties”,“initial file name”。AttachDbFileName屬性指定串連開啟的時候動態附加到伺服器上的資料庫檔案的位置。
這個屬性可以接受資料庫的完整路徑和相對路徑(例如使用|DataDirectory|文法),在運行時這個路徑會被應用程式的App_Data目錄所代替。
4.User Instance
SqlConnectionStringBuilder的UserInstance屬性,對應connectionString中的User Instance ,該值指示是否將串連從預設的 SQL Server Express 執行個體重新導向到在調用方帳戶之下運行並且在運行時啟動的執行個體。UserInstance=true,在這種情況下,SQLServerExpress為了把資料庫
附加到新的執行個體,建立一個新的進程,在開啟串連的使用者身份下運行。在ASP.NET應用程式中,這個使用者是本地的ASPNET帳號或預設的
NetworkService,這依賴於作業系統。為了安全地附加非系統管理員帳號(例如ASP.NET帳號)提供的資料庫檔案,建立一個獨立的SQLServer使用者執行個體是必要的。
5.min pool size=5;max pool size=512;
資料庫連接池最小串連數min pool size,資料庫連接池最大串連數max pool size.
6.DataDirectory是什麼?
asp.net 2.0有一個特殊目錄app_data,通常Sql server 2005 express資料檔案就放在這個目錄,相應的資料庫連接串就是:
connectionString="…… data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User
Instance=true"這裡有一個DataDirectory的宏,它表示什麼意義呢?
DataDirectory是表示資料庫路徑的替換字串。由於無需對完整路徑進行寫入程式碼,DataDirectory 簡化了項目的共用和應用程式的部署。例如,無需使用以下連接字串:
"Data Source= c:\program files\MyApp\app_data\Mydb.mdf"
通過使用|DataDirectory|(包含在如下所示的豎線中),即可具有以下連接字串:
"Data Source = |DataDirectory|\Mydb.mdf" 。
不僅僅是Sql server 2005 express中使用,也可以在其它的檔案資料庫中使用,例如Sqllite資料庫檔案的連接字串:
<add name="DefaultDB"
connectionString="DriverClass=NHibernate.Driver.SQLite20Driver;Dialect=NHibernate.Dialect.SQLiteDialect;Data
Source=|DataDirectory|\data.db3" />
7.connect timeout= 9000
與其他 .NET Framework 資料提供者(SQL Server、OLE DB 和 ODBC)中的 Connection 對象不同,OracleConnection 不支援
ConnectionTimeout 屬性。使用屬性或在連接字串中設定連線逾時沒有效果,而且返回的值總是零。OracleConnection 也不支援 Database
屬性或 ChangeDatabase 方法。