C# 資料庫連接解析

來源:互聯網
上載者:User

資料庫連接字串一 (採用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 方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.