【发布时间】:2013-09-18 02:49:04
【问题描述】:
当我们使用System.data.Common.DbProviderFactory时,是否有可能改变连接超时?
【问题讨论】:
标签: c# sql-server ado.net oracle11g dbproviderfactories
当我们使用System.data.Common.DbProviderFactory时,是否有可能改变连接超时?
【问题讨论】:
标签: c# sql-server ado.net oracle11g dbproviderfactories
对于那些真正尝试更改连接超时而不是命令超时的人,就像我在 Google 将我带到此页面时一样,您可以通过在连接字符串中添加连接超时属性来实现:
"DATA SOURCE=localhost:1521/mydatabase;USER ID=MY_USERNAME;PASSWORD=mypassword;Connection Timeout=60"
【讨论】:
是的,请检查您的 connectionString 以查看访问数据库是否一切正常。
DBProviderFactory 实例只返回System.Data.Common 的抽象。真正的类型来自您的 ado.net 提供商(SqlClient、OracleClient 等)。
当您执行以下操作时:
IDbConnection connection = dbFactory.CreateConnection();
connection.Open();
connection 对象是一个抽象对象,但 dbFactory.CreateConnection() 将返回一个具体类型 OracleConnection 或 SqlConnection 作为您的提供者。
【讨论】:
您可能试图设置命令超时。连接超时是计算机在放弃并决定数据库服务器关闭之前寻找服务器的时间。
命令超时是您希望查询在放弃等待查询完成之前运行多长时间。
参考:http://msdn.microsoft.com/en-us/library/system.data.common.dbcommand.commandtimeout(v=vs.110).aspx
【讨论】: