C# 数据库连接解析 joe

数据库连接字符串一 (采用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时,需要在连接中指定用户 ID 和密码。

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 方法。

原文地址:https://www.cnblogs.com/CWater/p/2553394.html