Asp.Net 数据库连接字符串

时间:2022-09-22 07:27:22
1   <configuration>
2     <connectionStrings>
3       <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLExpress;AttachDBFilename=|DataDirectory|aspnetdb.mdf;Initial Catalog=aspnet-MVCCodeFirstDemo-20150828102127;Integrated Security=SSPI;User Instance=true" />
4     </connectionStrings>
5   </configuration>

SqlConnectionStringBuilder实例化时需要使用connectionString。如:SqlConnectionStringBuild builder = new SqlConnectionStringBuild(connectionString);

一、Data Source(数据来源:地址)
SqlConnectionStringBuilder的DataSource属性,对应 connectionString中的Data Source,其意思表示为数据库连接地址源(数据源),“Data Source”可以由下列字符串代替:“Server”,“Address”,“Addr”和“Network Address”。
Data Source=.\SQLExpress也可以写成这样Data Source=(local)\SQLExpress。

二、Integrated Security(集成验证,即:是否使用Windows验证的方式去连接到数据库服务器)
SqlConnectionStringBuilder 的 IntegratedSecurity 属性,对应 connectionString 中的I ntegrated Security,“Integrated Security”可以写成“trusted_connection”。
为 True 时,使用当前的 Windows 帐户凭据进行身份验证,为 False 时,需要在连接中指定用户 ID 和密码。可识别的值为 True、False、Yes、No 以及与 True 等效的 SSPI。
如果没有这些则必须写上 uid=sa;pwd=123 之类的设置“uid”也可使用“User ID”,“pwd”也可换为“PassWord”。

SSPI:Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。
应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。

三、AttachDBFilename
SqlConnectionStringBuilder 的 AttachDBFilename 属性,对应 connectionString 中的 AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。
AttachDbFileName 属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。
这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的 App_Data 目录所代替。

四、User Instance
SqlConnectionStringBuilder 的 UserInstance 属性,对应 connectionString 中的 User Instance ,该值指示是否将连接从默认的 SQL Server 实例重定向到在调用方帐户之下运行并且在运行时启动的实例。
UserInstance=true 时,SQLServerExpress 为了把数据库附加到新的实例,建立一个新的进程,在打开连接的用户身份下运行。
在 ASP.NET 应用程序中,这个用户是本地的 ASPNET 帐号或默认的 NetworkService,这依赖于操作系统。
为了安全地附加非系统管理员帐号(例如ASP.NET帐号)提供的数据库文件,建立一个独立的 SQLServer 用户实例是必要的。

五、Initial Catalog 等同于 Database,即数据库名。

六、providerName 指定值“System.Data.OracleClient”,该值指定 ASP.NET 在使用此连接字符串进行连接时应使用 ADO.NET System.Data.OracleClient 提供程序。

---------------------------------------    附加一些连接语句例子    ---------------------------------------

1 <--普通例子1-->
2 <configuration>
3 <connectionStrings>
4     <add name="Sales" providerName="System.Data.SqlClient" connectionString="server=myserver;database=Products;uid=salesUser;pwd=sellMoreProducts" />
5 
6     <add name="NorthWind" providerName="System.Data.SqlClient" connectionString="server=.;database=NorthWind;Integrated Security=SSPI" />
7 
8 </connectionStrings>
9 </configuration>
1 <--普通例子2-->
2 <configuration>
3 <connectionStrings>
4     <add name="NorthWind" connectionString="Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=da;Data Source=bar" />
5 </configuration>
1 <connectionStrings>
2    <add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Initial Catalog=NorthWind;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
3 </connectionStrings>
4 <--也可写为-->
5 <connectionStrings>
6    <add name="LocalSqlServer" connectionString="Server=.\SQLExpress;Database=NorthWind;Integrated Security=Yes" providerName="System.Data.SqlClient" />
7 </connectionStrings>

----------------------------------------------------------------------------------------------------------

 1 <configuration>
 2 <connectionStrings>
 3     <add name="DB2005_2"
 4     providerName="System.Data.SqlClient"
 5     connectionString="Data Source=.;Initial Catalog=Northwind;User ID=dbtester;Password=zhi;Trusted_Connection=False;Connect Timeout=30;Min Pool Size=16;Max Pool Size=100"/>
 6 
 7     <add name="DB2005_1"
 8     providerName="System.Data.SqlClient"
 9     connectionString="Server=.;Database=Northwind;User ID=dbtester;Password=zhi;Trusted_Connection=False;Connect Timeout=30;Min Pool Size=16;Max Pool Size=100"/>
10 
11     <add name="Northword2000"
12     providerName="System.Data.SqlClient"
13     connectionString="Initial Catalog=Northwind;User ID=dbtester;PassWord=zhi;Persist Security Info=false;Data Source=(local);Connect Timeout=30;Min Pool Size=16;Max Pool Size=100;"/>
14 
15     <add name="SQLExp"
16        providerName="System.Data.SqlClient"
17        connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\northwnd1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"/>
18    
19     <add name="Oracle"
20       connectionString="Data Source=TEST;User ID=sa;Password=sa;"
21       providerName="System.Data.OracleClient" />
22 
23     <add name="oleconn"
24        providerName="System.Data.OleDb"
25        connectionString="Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|northwind.mdb"/>
26 
27     <add name="MySql"
28     providerName="MySql.Data.MySqlClient"
29     connectionString="Server=172.29.131.27;Port=3311;DataBase=comctl;Persist Security Info=False;User ID=root;Password=123456;Allow Zero Datetime=true;" />
30 </connectionStrings>
31     <system.data>
32         <DbProviderFactories>
33             <add name="MySQL Data Provider"
34                  invariant="MySql.Data.MySqlClient"
35                  description=".Net Framework Data Provider for MySQL"
36                  type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
37         </DbProviderFactories>
38     </system.data>
39 </configuration>

======================================      可以保存为(以下转自他处).cs      ======================================

 1 using System.Data.SqlClient;
 2 using System.Configuration;
 3 public class Class1
 4 {
 5     public Class1()
 6     {
 7         //Persist Security Info如果数据库连接成功后不再需要连接的密码,建议False
 8         //string sql2000 = "Initial Catalog=Northwind;User ID=dbtester;PassWord=zhi;Persist Security Info=false;Data Source=(local);Connect Timeout=30;Min Pool Size=16;Max Pool Size=100;";
 9         //string sql2000 = "Initial Catalog=Northwind;User ID=sa;PassWord=5;Persist Security Info=false;Data Source=.";
10         //string sql2000 = "Initial Catalog=Northwind;User ID=sa;PassWord=5;Persist Security Info=false;Data Source=newtime";
11         string source = "server=(local);integrated security=SSPI;database=Northwind";
12         string expressSource = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\northwnd.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
13         //Integrated Security采用windows的集成身份验证,integraged   Security=SSPI;
14         //Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错
15         //表示你的连接安全验证方式,可用trusted_connection=yes取代
16         //Integrated Security 为 True。用户实例仅与集成安全性一起使用,带有用户名和密码的 SQL Server 用户不起作用。
17         //string source3 = @"Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog= pubs;UserID=sa;Password=asdasd;";
18         //(DBMSSOCN=TCP/IP instead of Named Pipes, at the end of the Data Source is the port to use (1433 is the default))
19         //Standard Security:
20         string source4 = "Data Source=Aron1;Initial Catalog= pubs;UserId=sa;Password=asdasd;";
21         string source5 = "Server=Aron1;Database=pubs;UserID=sa;Password=asdasd;Trusted_Connection=False";
22         //Trusted_Connection 'false' 当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。
23         //可识别的值为 true、false、yes、no 以及与 true 等效的 sspi(强烈推荐)。所以一定要设置Trusted_Connection= false,以防被别人"登录"、"注入语句"等
24         string source6 = "Data Source=Aron1;Initial Catalog=pubs;Integrated Security=SSPI;";
25         string source7 = "Server=Aron1;Database=pubs;Trusted_Connection=True;";
26         //(use serverName\instanceName as Data Source to use an specifik SQLServer instance, only SQLServer2000)
27         //Integrated   Security或Trusted_Connection   'false'   当为   false   时,
28         //将在连接中指定用户   ID   和密码。当为   true   时,将使用当前的   Windows   帐户凭据进行身份验证
29         //VS2003:string connStr=System.Configuration.ConfigurationSettings.AppSettings["SQLCONNECTIONSTRING"];2003中用的
30         //VS2005:string connStr=System.Configuration.ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ToString(); 2005-8中用
31         System.Configuration.ConnectionStringSettings i = System.Configuration.ConfigurationManager.ConnectionStrings["Northword2000"];
32     }
33 }

本文转载自(出处):http://www.cnblogs.com/weichao975/archive/2010/07/11/1775090.html