1

我正在尝试为 dbcommand 设置超时,并对其进行测试,这就是超时设置为 1 的原因。

这是我正在使用的代码,但超时永远不会触发,我做错了什么吗?

注意:使用 DbConnection 是因为此代码是从通用代码中提取的,不仅用于 db2,因此 db2connection 不是一个选项。

String lProviderFactory = "System.Data.OleDb";
String lStrConexion = "Provider=IBMDADB2;Database=PYRAMID;Hostname=192.9.200.13;Protocol=TCPIP; Port=50000;Uid=db2admin;Pwd=xxx;";
String lQuery = "SLOW SELECT";
var lDbFactory = DbProviderFactories.GetFactory(lProviderFactory);
DbConnection mConexion = lDbFactory.CreateConnection();
mConexion.ConnectionString = lStrConexion;

mConexion.Open();

try
{
    DbCommand lComando = mConexion.CreateCommand();
    lComando.CommandText = lQuery;
    lComando.CommandTimeout = 1;


    DbDataAdapter lAdapter = lDbFactory.CreateDataAdapter();
    lAdapter.SelectCommand = lComando;
    DataSet lDs = new DataSet();
    lAdapter.Fill(lDs);

}
catch(Exception ex)
{
    Console.WriteLine("EXCEPCION :" + ex.Message); //Timeout should fall in here
}
finally
{
    mConexion.Close();
}

谢谢!

4

0 回答 0