首页WEB开发.NET教程 → SqlConnection.ConnectionString 属性

SqlConnection.ConnectionString 属性

日期:2007-4-29 08:28:10 出处:其他转载 作者:不详 人气:
SqlConnection.ConnectionString   属性解释    
   
  ConnectionString   类似于   OLE   DB   连接字符串,但并不相同。与   OLE   DB   或   ADO   不同,如果“Persist   Security   Info   ”值设置为   false(默认值),则返回的连接字符串与用户设置的   ConnectionString   相同但去除了安全信息。除非将“Persist   Security   Info   ”设置为   true,否则,SQL   Server   .NET   Framework   数据提供程序将不会保持,也不会返回连接字符串中的密码。  
   
  可以使用   ConnectionString   属性连接到数据库。下面的示例阐释了一个典型的连接字符串。  
   
  "Persist   Security   Info=False;Integrated   Security=SSPI;database=northwind;server=mySQLServer"  
   
  只有在连接关闭时才能设置   ConnectionString   属性。许多连接字符串值都具有相应的只读属性。当设置连接字符串时,将更新所有这些属性(除非检测到错误)。检测到错误时,不会更新任何属性。SqlConnection   属性只返回那些包含在   ConnectionString   中的设置。  
   
  若要连接到本地机器,请将服务器指定为“(local)”。(必须始终指定一个服务器。)  
   
  重置已关闭连接上的   ConnectionString   会重置包括密码在内的所有连接字符串值(和相关属性)。例如,如果设置一个连接字符串,其中包含“Database=   northwind”,然后再将该连接字符串重置为“Data   Source=myserver;Integrated   Security=SSPI”,则   Database   属性将不再设置为   Northwind。  
   
  在设置后会立即分析连接字符串。如果在分析时发现语法中有错误,则产生运行库异常,如   ArgumentException。只有当试图打开连接时,才会发现其他错误。  
   
  连接字符串的基本格式包括一系列由分号分隔的关键字/值对。等号   (=)   连接各个关键字及其值。若要包括含有分号、单引号字符或双引号字符的值,则该值必须用双引号括起来。如果该值同时包含分号和双引号字符,则该值可以用单引号括起来。如果该值以双引号字符开始,则还可以使用单引号。相反地,如果该值以单引号开始,则可以使用双引号。如果该值同时包含单引号和双引号字符,则用于将值括起来的引号字符每次出现时,都必须成对出现。  
   
  若要在字符串值中包括前导或尾随空格,则该值必须用单引号或双引号括起来。即使将整数、布尔值或枚举值用引号括起来,其周围的任何前导或尾随空格也将被忽略。然而,保留字符串关键字或值内的空格。使用   .NET   Framework   1.1   版时,在连接字符串中可以使用单引号或双引号而不用使用分隔符(例如,Data   Source=   my'Server   或   Data   Source=   my"Server),但引号字符不可以为值的第一个或最后一个字符。  
   
  若要在关键字或值中包括等号   (=),则它之前必须还有另一个等号。例如,在假设的连接字符串中,  
   
  "key==word=value"  
   
  关键字是“key=word”并且值是“value”。  
   
  如果“keyword=   value”对中的一个特定关键字多次出现在连接字符串中,则将所列出的最后一个用于值集。  
   
  关键字不区分大小写。  
   
  下表列出了   ConnectionString   中的关键字值的有效名称。  
   
  名称   默认值   说明    
  Application   Name   应用程序的名称,如果不提供应用程序名称,默认是:“.Net   SqlClient   Data   Provider”    
  AttachDBFilename  
  -   或   -  
  extended   properties  
  -   或   -  
  Initial   File   Name   可连接数据库的主文件的名称,包括完整的路径名。    
  必须使用关键字“database”来指定数据库的名称。  
   
  Connect   Timeout    
  -   或   -  
  Connection   Timeout  
  15   在终止尝试连接并产生错误之前,等待与服务器的连接的时间长度(以秒为单位)。    
  Current   Language   SQL   Server   语言    
  Data   Source    
  -   或   -  
  Server  
  -   或   -  
  Address  
  -   或   -  
  Addr  
  -   或   -  
  Network   Address  
  要连接的   SQL   Server   实例的名称或网络地址。    
  Encrypt   'false'   当该值为   true   时,如果服务器端安装了证书,则   SQL   Server   将对所有在客户端和服务器之间传送的数据使用   SSL   加密。可识别的值为   true、false、yes   和   no。    
  Initial   Catalog  
  -   或   -  
  Database  
  数据库的名称。    
  Integrated   Security    
  -   或   -  
  Trusted_Connection  
  'false'   当为   false   时,将在连接中指定用户   ID   和密码。当为   true   时,将使用当前的   Windows   帐户凭据进行身份验证。    
  可识别的值为   true、false、yes、no   以及与   true   等效的   sspi(强烈推荐)。  
   
  Network   Library    
  -   或   -  
  Net  
  'dbmssocn'   用于建立与   SQL   Server   实例的连接的网络库。支持的值包括   dbnmpntw(命名管道)、dbmsrpcn(多协议)、dbmsadsn   (Apple   Talk)、dbmsgnet   (VIA)、dbmslpcn(共享内存)及   dbmsspxn   (IPX/SPX)   和   dbmssocn   (TCP/IP)。    
  相应的网络   DLL   必须安装在要连接的系统上。如果不指定网络而使用一个本地服务器(比如“.”或“(local)”),则使用共享内存。  
   
  Packet   Size   8192   用来与   SQL   Server   的实例进行通讯的网络数据包的大小,以字节为单位。    
  Password    
  -   或   -  
  Pwd  
  SQL   Server   帐户登录的密码(建议不要使用。为了维护最高级别的安全性,强烈建议改用   Integrated   Security   或   Trusted_Connection   关键字)。    
  Persist   Security   Info   'false'   当该值设置为   false   或   no(强烈推荐)时,如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)将不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。可识别的值为   true、false、yes   和   no。    
  User   ID   SQL   Server   登录帐户(建议不要使用。为了维护最高级别的安全性,强烈建议改用   Integrated   Security   或   Trusted_Connection   关键字)。    
  Workstation   ID   本地计算机名称   连接到   SQL   Server   的工作站的名称。    
   
   
  下表列出了   ConnectionString   内连接池值的有效名称。有关连接池的更多信息,请参见   SQL   Server   .NET   Framework   数据提供程序连接池。  
   
  名称   默认值   说明    
  Connection   Lifetime   0   当连接被返回到池时,将其创建时间与当前时间作比较,如果时间长度(以秒为单位)超出了由   Connection   Lifetime   指定的值,该连接就会被销毁。这在聚集配置中很有用(用于强制执行运行中的服务器和刚置于联机状态的服务器之间的负载平衡)。    
  零   (0)   值将使池连接具有最大的连接超时。  
   
  Connection   Reset   'true'   确定从池中提取数据库连接时是否重置数据库连接。对于   Microsoft   SQL   Server   7.0   版,设置为   false   可避免获取连接时再有一次额外的服务器往返行程,但须注意此时并未重置连接状态(如数据库上下文)。    
  Enlist   'true'   当该值为   true   时,池程序在创建线程的当前事务上下文中自动登记连接。可识别的值为   true、false、yes   和   no。    
  Max   Pool   Size   100   池中允许的最大连接数。    
  Min   Pool   Size   0   池中允许的最小连接数。    
  Pooling   'true'   当该值为   true   时,系统将从相应池中提取   SQLConnection   对象,或在必要时创建该对象并将其添加到相应池中。可识别的值为   true、false、yes   和   no。    
   
   
  当设置需要布尔值的关键字或连接池值时,您可以使用   'yes'   代替   'true','no'   代替   'false'。整数值表示为字符串。  
   
  注意   SQL   Server   .NET   Framework   数据提供程序使用它自己的协议与   SQL   Server   进行通信。因此,当连接到   SQL   Server   时,它不支持   ODBC   数据源名称   (DSN)   的使用,因为它不添加   ODBC   层。   警告   在此版本中,在应用程序中根据用户输入构造连接字符串时(例如,从对话框中检索用户   ID   和密码信息并将其追加到连接字符串时)应相当谨慎。应用程序应确保用户无法在这些值中嵌入额外的连接字符串参数(例如,输入“validpassword;database=somedb”作为密码,以试图连接到其他数据库)。    
   
  public   void   CreateSqlConnection()    
  {  
  SqlConnection   myConnection   =   new   SqlConnection();  
  myConnection.ConnectionString   =   "Persist   Security   Info=False;Integrated   Security=SSPI;database=northwind;server=mySQLServer;Connect   Timeout=30";  
  myConnection.Open();

关于本站 | 帮 助 | 广告服务 | 版权声明 | 业务合作 | 捐助本站 | 软件发布 | 联系我们
77资源下载 www.77zy.com ©2007-2008 版权所有
备案编号:赣ICP备07002641号  QQ:674648476