【问题标题】:C# OleDbConnection con set to timeoutC# OleDbConnection 设置为超时
【发布时间】:2013-09-17 07:29:27
【问题描述】:

我有一个应用程序可以查询 Access 数据库并显示数据。我希望连接(con)在 2 分钟后超时。有人对我如何编码有任何建议吗?

这就是我一开始所拥有的

OleDbConnection con;
OleDbDataReader dr;
OleDbCommand cmd;

con.Open();
cmd = new OleDbCommand(str, con);
dr = cmd.ExecuteReader();

谢谢

【问题讨论】:

    标签: c# visual-studio timeout database-connection


    【解决方案1】:

    @Damith 很接近,但不幸的是 ConnectionTimeout 属性是只读的。您必须使用... ;Connect Timeout=30; 在连接字符串中设置超时。 Here's the documentation.

    【讨论】:

    • 而且...显然,提供程序并不总是允许设置ConnectTimeoutConnect TimeoutConnection Timeout :( 我最终在 SQL Server 端设置了超时。不理想。
    【解决方案2】:

    不共享连接,需要的时候创建连接,用using block包装,

    如果需要设置超时时间,可以在连接字符串中使用ConnectionTimeout属性进行设置(例如".....;Connect Timeout=30"

    using (OleDbConnection con = new OleDbConnection(connectionString))
    using (OleDbCommand cmd = new OleDbCommand(str, con))
    {
       con.Open();
       using (OleDbDataReader dr = cmd.ExecuteReader())
       {
    
       }
    }
    

    【讨论】:

    • 完美!!谢谢楼主!
    【解决方案3】:

    你有没有尝试过超时参数,

    OleDbCommand.CommandTimeout 属性 - 当您在执行查询期间需要超时时

    OleDbConnection.ConnectionTimeout 属性 - 当您在建立连接时需要超时

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      • 2015-05-22
      • 2020-07-16
      • 2010-10-10
      • 2010-09-27
      相关资源
      最近更新 更多