【2017年整理】MS SQL Server 数据库连接字符串详解.doc
文本预览下载声明
MS SQL Server 数据库连接字符串详解
问题二:超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。
解决办法1.在代码里面,把未关闭的连接关闭2.扩大共享池,方法如下:解决方法可以是修改连接池的连接生存期,因为默认值是60秒,即连接从应用程序被释放后可以在池中保存的时间。具体操作步骤如下:如果是ODBC的话,则可以在ODBC Data Source Administrator中手动更改,该程序位于“Start”菜单中的“Programs”-Adminstrative Tools(中文名:管理工具)下,或从Control Panel(中文名:控制面板)中打开“ODBC Data Source Administrator”(ODBC数据源管理器),再选择“Connection Pooling”(连接池)选项卡,双击驱动程序中的“SQL Server”,选择“Pool Connetions to this drive”(使用池连接该驱动程序),把下面的时间60秒改的大一点,例如120。如果是SqlConnection的共享连接,则为 ConnectionString属性Connection Lifetime数值名称指定一个值,该值默认情况下是0,表示连接永远不会从池中被自动移走。如果指定一个不同的值,那么一旦连接被返回到池中,该值将和连接的创建时间及当前时间进行比较。如果生存期超过了Connection Lifetime的值,那么连接将从池中被移走。
问题的原因是与数据库的连接没有显示关闭,而等系统自动回收是要时间的.解决的方法是改变连接池的大小.在连接字符串的后面加上以下代码: Enlist=true;Pooling=true;Max Pool Size=300;Min Pool Size=0;Connection Lifetime=300;user id=sa;packet size=1000packet size参数取512到32767中的任一整数值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 ecurity=SSPI;database=northwind;server=mySQLServer
只有在连接关闭时才能设置 ConnectionString 属性。许多连接字符串值都具有相应的只读属性。当设置连接字符串时,将更新所有这些属性(除非检测到错误)。检测到错误时,不会更新任何属性。SqlConnection 属性只返回那些包含在 ConnectionString 中的设置。
若要连接到本地机器,请将服务器指定为“(local)”。(必须始终指定一个服务器。)
重置已关闭连接上的 ConnectionString 会重置包括密码在内的所有连接字符串值(和相关属性)。例如,如果设置一个连接字符串,其中包含“Database= northwind”,然后再将该连接字符串重置为“Data Source=myserver;Integrated Security=SSPI”,则 Database 属性将不再设置为 Northwind。
在设置后会立即分析连接字符串。如果在分析时发现语法中有错误,则产生运行库异常,如 ArgumentException。只有当试图打开连接时,才会发现其他错误。
连接字符串的基本格式包括一系列由分号分隔的关键字/值对。等号 (=) 连接各个关键字及其值。若要包括含有分号、单引号字符或双引号字符的值,则该值必须用双引号括起来。如果该值同时包含分号和双引号字符,则该值可以用单引号括起来。如果该值以双引号字符开始,则还可以使用单引号。相反地,如果该值以单引号开始,则可以使用双引号。如果该值同时包含单引号和双引号字符,则用于将值括起来的引号字符每次出现时,都必须成对出现。
若要在字符串值中包括前导或尾随空格,则该值必须用单引号或双引号括起来。即使将整数、布尔值或枚
显示全部