SqlConnection.ConnectionString 属性

SqlConnection.ConnectionString 属性ConnectionString类似于OLEDB连接字符串,但并不相同。与OLEDB或ADO不同,如果“PersistSecurityInfo”值设置为false(默认值),则返回的连接字符串与用户设置的ConnectionString相同但去除了安全信息。除非将“PersistSecurityInfo”设置为true,否则,SQLServer.NETF

大家好,又见面了,我是你们的朋友全栈君。

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 加密。可识别的值为 truefalseyesno

Initial Catalog
– 或 –
Database

  数据库的名称。

Integrated Security
– 或 –
Trusted_Connection

‘false’ 当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。

可识别的值为 truefalseyesno 以及与 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’ 当该值设置为 falseno(强烈推荐)时,如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)将不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。可识别的值为 truefalseyesno
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 时,池程序在创建线程的当前事务上下文中自动登记连接。可识别的值为 truefalseyesno
Max Pool Size 100 池中允许的最大连接数。
Min Pool Size 0 池中允许的最小连接数。
Pooling ‘true’ 当该值为 true 时,系统将从相应池中提取 SQLConnection 对象,或在必要时创建该对象并将其添加到相应池中。可识别的值为 truefalseyesno

当设置需要布尔值的关键字或连接池值时,您可以使用 ‘yes’ 代替 ‘true’,’no’ 代替 ‘false’。整数值表示为字符串。

注意   SQL Server .NET Framework 数据提供程序使用它自己的协议与 SQL Server 进行通信。因此,当连接到 SQL Server 时,它不支持 ODBC 数据源名称 (DSN) 的使用,因为它不添加 ODBC 层。 警告   在此版本中,在应用程序中根据用户输入构造连接字符串时(例如,从对话框中检索用户 ID 和密码信息并将其追加到连接字符串时)应相当谨慎。应用程序应确保用户无法在这些值中嵌入额外的连接字符串参数(例如,输入“validpassword;database=somedb”作为密码,以试图连接到其他数据库)。

示例

下面的示例创建一个 SqlConnection并设置它的一些属性。

 
Public Sub CreateSqlConnection()
    Dim myConnection As New SqlConnection()
    myConnection.ConnectionString = 
"Persist Security Info=False;Integrated Security=SSPI;
database=northwind;server=mySQLServer;Connect Timeout=30" myConnection.Open() End Sub 'CreateSqlConnection

 
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(); }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机能不能升级固态硬盘,老电脑升级固态硬盘真的能变快吗?「建议收藏」

    计算机能不能升级固态硬盘,老电脑升级固态硬盘真的能变快吗?「建议收藏」怎样去DIY一台主机呢?它可以满足自己的工作、游戏需求,还要颜值高、噪音小、最重要的是价格要便宜,质量要好。本系列为让装机零基础的朋友可以轻松了解,所以尽量避免专业参数。(每周二更新)老电脑升级固态硬盘是第一选择,然而很多同学购买了固态硬盘,却发现没有想象的那么快,用测速工具测试后发现读写速度不能达到标称,是买到假货了吗?其实不然,固态硬盘读写速度受很多因素影响,本期《装机不求人》就和大家讲解…

    2022年6月6日
    38
  • 守护线程与线程中断区别_守护线程和主线程

    守护线程与线程中断区别_守护线程和主线程1、主线程结束,守护线程也会提前结束执行。publicclassThreadDemo1extendsThread{ publicThreadDemo1(Stringname){ super(name); } @Override publicvoidrun(){ while(true){ System.err.println(getName()…

    2022年10月10日
    3
  • json 转list 集合

    json 转list 集合好久没写博客了 虽然写的一塌糊涂吧 但也得坚持 今天遇到 json 转 list 集合的问题 随便就记一下 importnet sf json JSONArray importnet sf json JSONObject pom xml 文件 lt json 依赖 gt lt dependency gt amp l

    2025年9月3日
    2
  • 阿里云服务器中了挖矿程序应该如何清除「建议收藏」

    阿里云服务器中了挖矿程序应该如何清除「建议收藏」阿里云服务器中了挖矿程序如何处理?云安全中心安全告警短信提醒云服务器中了挖矿程序怎么处理?护云盾来详细说下阿里云服务器挖矿程序的解决方法,一种是使用云安全中心自动处理,另一种方式是自行手动清除。阿里云服务器挖矿程序解决方法如果你的阿里云服务器中了挖矿程序,你有两种处理方式,一种是使用云安全中心自动清理,另一种是手动清除:云安全中心处理挖矿程序1、登录到云安全中心控制台2、左侧栏,选择“威胁检测”–“安全告警处理”在安全告警处理列表中,找到挖矿程序,然后点“处理”云安全中心安

    2022年6月22日
    161
  • Linux虚拟机重启_linux虚拟机怎么关机

    Linux虚拟机重启_linux虚拟机怎么关机一、Linux的五个重启命令1、shutdown2、poweroff3、init4、reboot5、halt二、五个重启命令的具体说明shutdownreboot在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。1.shutdownsh…

    2022年10月10日
    3
  • C/C++产生随机数

    C/C++产生随机数

    2021年12月15日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号