C#连接数据库的ConnectionString字符串的格式说明
- 博客分类:
- 技术杂绘
连接字符串的基本格式包括一系列由分号分隔的关键字/值对。等号 (= ) 连接各个关键字及其值。若要包括含有分号、单引号字符或双引号字符的值,则该值必须用双引号括起来。如果该值同时包含分号和双引号字符,则该值可以用单引号括起来。如果该值以双引号字符开始,则也可以使用单引号。相反,如果该值以单引号开始,也可以使用双引号。如果该值同时包含单引号和双引号字符,则用于将该值括起来的引号字符每次出现时,都必须成对出现。
若要在字符串值中包括前导或尾随空格,则该值必须用单引号或双引号括起来。即使将整数、布尔值或枚举值用引号括起来,其周围的任何前导或尾随空格也将被忽略。然而,保留字符串关键字或值内的空格。使用 .NET Framework 1.1 版或更高版本时,在连接字符串中可以使用单引号或双引号,而不用使用分隔符(例如,Data Source= my'Server 或 Data Source= my"Server),但引号字符不可以为值的第一个或最后一个字符。
若要在关键字或值中包括等号 (=),则它之前必须还有另一个等号。例如,在假设的连接字符串中,
关键字是"key=word"并且值是"value"。
如果关键字/值对中的一个特定关键字多次出现在连接字符串中,则将所列出的最后一个用于值集。
关键字不区分大小写。
下表列出了 ConnectionString 中的关键字值的有效名称。 Application Name N/A 应用程序的名称,或者".Net SqlClient Data Provider"(如果不提供应用程序名称)。 Async 'false' 如果设置为 true,则启用异步操作支持。可识别的值为 true、false、yes 和 no。 AttachDBFilename - 或 - extended properties - 或 - Initial File Name N/A 主数据库文件的名称,包括可连接数据库的完整路径名。只有具有 .mdf 扩展名的主数据文件才支持 AttachDBFilename。
如果主数据文件为只读,则附加操作将失败。
该路经可以是绝对路径,也可以是相对路径,这取决于是否使用 DataDirectory 替换字符串。如果使用 DataDirectory,则对应的数据库文件必须存在于替换字符串指向的目录的子目录中。
注意:
远程服务器、HTTP 及 UNC 路径名不受支持。 必须按照如下方式使用关键字"database"(或其别名之一)指定数据库名称:
"AttachDbFileName=|DataDirectory|\data\YourDB.mdf; integrated security=true;database=YourDatabase"
如果数据文件所在的目录中存在日志文件,并且在附加主数据文件时使用了"database"关键字,则会生成错误。这种情况下,请移除日志文件。附加了数据库后,系统将根据物理路径自动生成一个新的日志文件。 Connect Timeout - 或 - Connection Timeout 15 在终止尝试并产生错误之前,等待与服务器的连接的时间长度(以秒为单位)。 Context Connection 'false' 如果应对 SQL Server 进行进程内连接,则为 true。 Data Source - 或 - Server - 或 - Address - 或 - Addr - 或 - Network Address N/A 要连接的 SQL Server 实例的名称或网络地址。可以在服务器名称之后指定端口号:
server=tcp:servername, portnumber
指定本地实例时,始终使用 (local)。若要强制使用某个协议,请添加下列前缀之一:
np:(local), tcp:(local), lpc:(local)
注意:
ADO.NET 2.0 不支持在 SQL Server 2000 或更低版本的共享内存上执行异步命令。但是,可以强制用 TCP 代替共享内存,方法是:向连接字符串中的服务器名称添加"tcp:"前缀,或者使用"本地主机"。 Encrypt 'false' 当该值为 true 时,如果服务器端安装了证书,则 SQL Server 将对所有在客户端和服务器之间传送的数据使用 SSL 加密。可识别的值为 true、false、yes 和 no。 Failover Partner N/A 在其中配置数据库镜像的故障转移合作伙伴服务器的名称。
.NET Framework 1.0 或 1.1 版不支持 Failover Partner 关键字。 Integrated Security - 或 - Trusted_Connection 'false' 当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。
可识别的值为 true、false、yes、no 以及与 true 等效的 sspi(强烈推荐)。 MultipleActiveResultSets 'false' 如果为 true,则应用程序可以维护多活动结果集 (MARS)。如果为 false,则应用程序必须在执行该连接上的任何其他批处理之前处理或取消一个批处理中的多个结果集。
可识别的值为 true 和 false。
.NET Framework 1.0 或 1.1 版不支持该关键字。 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 N/A SQL Server 帐户登录的密码。建议不要使用。为保持高安全级别,我们强烈建议您使用 Integrated Security 或 Trusted_Connection 关键字。 Persist Security Info 'false' 当该值设置为 false 或 no(强烈推荐)时,如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)将不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。可识别的值为 true、false、yes 和 no。 Replication 'false' 如果使用连接来支持复制,则为 true。 Transaction Binding Implicit Unbind 控制与登记的 System.Transactions 事务关联的连接。
可能的值包括:
Transaction Binding=Implicit Unbind;
Transaction Binding=Explicit Unbind;
Implicit Unbind 可使连接在事务结束时从事务中分离。分离后,连接上的其他请求将以自动提交模式执行。在事务处于活动状态的情况下执行请求时,不会检查 System.Transactions.Transaction.Current 属性。事务结束后,其他请求将以自动提交模式执行。
Explicit Unbind 可使连接保持连接到事务,直到连接关闭或调用显式 SqlConnection.TransactionEnlist(null)。如果 Transaction.Current 不是登记的事务或登记的事务未处于活动状态,则引发 InvalidOperationException。 TrustServerCertificate 'false' 如果设置为 true,则使用 SSL 对通道进行加密,但不通过证书链对可信度进行验证。如果将 TrustServerCertificate 设置为 true 并将 Encrypt 设置为 false,则不对通道进行加密。可识别的值为 true、false、yes 和 no。有关更多信息,请参见 SQL Server 2005 Books Online(《SQL Server 2005 联机丛书》)中的"Encryption Hierarchy"(加密层次结构)和"Using Encryption Without Validation"(使用不验证的加密)。 Type System Version N/A 指示应用程序期望的类型系统的字符串值。可能的值包括:
Type System Version=SQL Server 2000;
Type System Version=SQL Server 2005;
Type System Version=SQL Server 2008;
Type System Version=Latest;
如果设置为 SQL Server 2000,将使用 SQL Server 2000 类型系统。与 SQL Server 2005 实例连接时,执行下列转换:
XML 到 NTEXT
UDT 到 VARBINARY
VARCHAR(MAX)、NVARCHAR(MAX) 和 VARBINARY(MAX) 分别到 TEXT、NEXT 和 IMAGE。
如果设置为 SQL Server 2005,将使用 SQL Server 2005 类型系统。对 ADO.NET 的当前版本不进行任何转换。
如果设置为 Latest,将使用此客户端-服务器对无法处理的最新版本。这个最新版本将随着客户端和服务器组件的升级自动更新。 User Instance 'false' 一个值,用于指示是否将连接从默认的 SQL Server 速成版实例重定向到调用方帐户下运行的运行时启动的实例。
发表评论
-
Asp.Net调用Office组件操作时的DCOM配置
2012-07-03 13:44 1278在项目中将数据导出为Excel格式时出现"检索C ... -
Window Presentation Foundation系列---从HelloWorld认知WPF
2012-07-02 12:56 737无能是我自己写的 ... -
用JavaFX访问ArcGIS Server的REST服务(2)
2012-07-02 12:56 861上一篇文章介绍了ArcGIS Server地图服务JSON ... -
fxmq
2012-07-02 12:56 511Flex Message Queue (fxmq) (ba ... -
深入SVG路径~~~在DEGRAFA中使用PATH
2012-07-02 12:56 646在W3SCHOOL的SVG教程 中 可以看出,SVG除了内 ... -
tile布局的ButtonBar
2012-07-02 12:55 648flex/spark" x ... -
关于flex的资料
2012-07-01 10:30 1986====Adobe官方==== Adobe : ... -
为什么用*? 为什么不用*?
2012-07-01 10:28 599离开RoR有一段时间了,本来不想提些负面的东西,不过JE猎 ... -
谈谈我对未来的想法吧
2012-07-01 10:28 358来总行珠海研发中 ... -
实战 OpenLaszlo 与 db4o
2012-07-01 10:28 376本文于去年年底完 ... -
java面笔试总结
2012-07-01 10:28 5212010、10、12 湖南华诺集团面试题集 1、D ... -
[转载]as3面试题
2012-06-30 16:51 717[转载]as3面试题 2011年08 ... -
RIA活动)Adobe(北京2011??8??28)开发者技术日,个人备忘录暨内容概要
2012-06-30 16:51 570RIA活动)Adobe(北京2011??8??28)开发者技术 ... -
评论 (
2012-06-30 16:51 570评论 ( 2010年10月08日 ... -
使用Flex和Actionscript开发Flash游戏――碰撞检测
2012-06-30 16:51 513使用Flex和Actionscript开发Flash游戏――碰 ... -
成为一名高端的Flash游戏开发工程师需要具备的方方面面
2012-06-30 16:51 579成为一名高端的Flash游 ...
相关推荐
那么,我们今天就来总结整理一下C#/.NET的连接各类主流数据库(SQL Server,MySQL,Microsoft Access,DB2,Oracle)的连接字符串。 一、C#/.NET连接Microsoft SQL Server 1. 使用ODBC数据库连接 // ODBC标准连接 ...
数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库。 已完成所有数据库操作方法的封装,如:添加、修改、查询、删除、事物查询、存储过程等十几个方法,可供直接使用,使C#开发人员...
开发环境:VS.NET 2005 C# 功能描述:调用微软自带Dialog生成连接数据库字串,可复制至粘贴板.
-- 连接字符串 --> <add key="ConnectionString" value="server=.;database=master;uid=sa;pwd=sa"/><!-- SQLServer连接字符串 --> <!--<add key="ConnectionString" value="Data Source=myoracle;User Id=scott;...
首先在Web.config(本地的添加应用程序配置文件App.config,本地还要添加System.Configuration.dll程序集)上配置数据库连接字符串,添加如下节点代码: <add name=connstr connectionString=Data
数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. 得到最大值 是否存在 是否存在(基于MySqlParameter) 执行SQL语句,返回影响的记录数 执行MySql和Oracle滴混合事务 执行多条SQL...
连接字符串:String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb"; 建立连接:OleDbConnection connection = new OleDbConnection(connectionString); 使用...
/// <param name="connectionString">一个有效的数据库连接字符串 /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供...
//数据库连接字符串(web.config来配置),可以动态更改SQLString支持多数据库. public static string connectionString = "Data Source=" + System.Web.HttpContext.Current.Server.MapPath( Configuration...
使用IP连接SQL SERVER或者配置为连接字符串失败 情景一:当在webconfig文件中使用 ”ConnectionString” value=”server database=数据库名;uid sa;pwd=1″/>来连接数据库中,发现登陆时候无法正常登陆,出现了一大...
//连接字符串 默认Key private string connectionString; private string providerName; #endregion #region 构造函数 /// <summary> /// 默认构造函数(DbHelper) /// </summary> public MySqlDbHelper() { this....