public OracleDataReader executeQuery(String sql)
{ OracleConnection conn = Connection();
OracleDataReader odr = null; ;
try
{
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
odr = cmd.ExecuteReader(); }
catch (Exception ee)
{
Console.Write(ee.Message);
}
finally{
conn.Close();
}
return odr; }这是数据库类中的搜索方法,调用此方法时,参数为select语句 返回值为结果集,因为希望,无论是否有异常抛出,都要求关闭数据连接,可是这样,就无法有返回值。
一个办法就是 将 finally{
conn.Close();
}
去掉。
还有没有其他的办法??
比如把搜索出来的东西放入缓冲中,返回这个缓存. 如果有的话,那具体的做法该是怎么样的啊??谢谢了
{ OracleConnection conn = Connection();
OracleDataReader odr = null; ;
try
{
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
odr = cmd.ExecuteReader(); }
catch (Exception ee)
{
Console.Write(ee.Message);
}
finally{
conn.Close();
}
return odr; }这是数据库类中的搜索方法,调用此方法时,参数为select语句 返回值为结果集,因为希望,无论是否有异常抛出,都要求关闭数据连接,可是这样,就无法有返回值。
一个办法就是 将 finally{
conn.Close();
}
去掉。
还有没有其他的办法??
比如把搜索出来的东西放入缓冲中,返回这个缓存. 如果有的话,那具体的做法该是怎么样的啊??谢谢了
在关闭连接的时候同样也可以返回。finally一般放在最后。
声明dataset 或 datatable 然后把查询出来的结果放到里面去吗??
试一试……谢谢先……
而且,数据库只有在进行过ExecuteScalar之后才需要关系然后重新打开。进行其他访问后不需要关闭的。