C# 在单个OLEDB连接上打开多个数据读取器
我正在使用IBMOLEDB提供程序连接到DB2 我可以在单个OLEDB连接上打开多个DataReader。此提供程序是否会为每个DataReader隐式打开其他连接 如果是,此连接将自动关闭还是保持打开状态,直到连接超时C# 在单个OLEDB连接上打开多个数据读取器,c#,ado.net,db2,C#,Ado.net,Db2,我正在使用IBMOLEDB提供程序连接到DB2 我可以在单个OLEDB连接上打开多个DataReader。此提供程序是否会为每个DataReader隐式打开其他连接 如果是,此连接将自动关闭还是保持打开状态,直到连接超时 OleDbConnection connection = new (connectionString); OleDbDataReader reader = null; try { connection.Open(); reader =
OleDbConnection connection = new (connectionString);
OleDbDataReader reader = null;
try
{
connection.Open();
reader = OleDbHelpher.ExecuteNonQuery(connection, CommandType.Text,query1);
while (reader.Read())
{
Console.WriteLine(reader[0].ToString());
}
reader.Close();
reader = OleDbHelpher.ExecuteNonQuery(connection, CommandType.Text,query2);
while (reader.Read())
{
Console.WriteLine(reader[0].ToString());
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
connecton.Close();
}
如果您现在有一个try/finally阻塞,连接将始终关闭 不可以,在一个连接上不能打开多个
DataReader
。如果您尝试这样的操作,您将得到一个异常
:
请注意,当DataReader打开时,连接正在使用中
由那个数据阅读器独家提供。您不能为连接执行任何命令,
包括创建另一个DataReader,直到原始DataReader
关门了
相反,打开2个连接(不要担心惩罚,因为您的连接很可能是池连接),并确保在finally块中关闭连接,或者使用语句。如果您现在使用try/finally块,则连接将始终关闭 不可以,在一个连接上不能打开多个
DataReader
。如果您尝试这样的操作,您将得到一个异常
:
请注意,当DataReader打开时,连接正在使用中
由那个数据阅读器独家提供。您不能为连接执行任何命令,
包括创建另一个DataReader,直到原始DataReader
关门了
相反,打开2个连接(不要担心惩罚,因为你的连接很可能是池连接),并确保在finally块中关闭连接,或者使用语句