SqlDataReader问题求助,

nicholasvb 2014-12-26 09:49:31
这个类,我调用之后,如何变比connection连接 ?

/// <summary>
/// 执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
/// </summary>
/// <param name="strSQL">查询语句</param>
/// <returns>OracleDataReader</returns>
public static OracleDataReader ExecuteReader(string strSQL)
{
OracleConnection connection = new OracleConnection(connectionString);
OracleCommand cmd = new OracleCommand(strSQL,connection);
try
{
connection.Open();
OracleDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch(System.Data.OracleClient.OracleException e)
{
throw new Exception(e.Message);
}

}
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在 using{ } 结束时,自动就会调用 conn.Dispose 的语句。即时是查询抛出了异常也会执行它,因此不需要写 try...catch 语句。
  • 打赏
  • 举报
回复
获取一组返回实体对象,可能是这样的
List<MyDataType> list;
using (var conn = new OracleConnection(cnStr))
{
    conn.Open();
    var comm = conn.CreateCommand();
    comm.CommandText = "select * from all_tables where temporary='N'";
    comm.CommandType = System.Data.CommandType.Text;
    var result = from DbDataRecord record in comm.ExecuteReader()
                let name = (string)record["X_NAME"]
                where name.EndsWith("E")
                select new MyDataType{ XName = name,  WSize = (double)record["size"]};
    list = result.ToList();
}
  • 打赏
  • 举报
回复
删掉这种“类”吧。才3条语句,至于封装什么“类”吗?封装完之后还要写上一个“警告”让调用者担心,何必呢? 你在你的自己代码中直接 Copy+Past 这3条语句,而不调用这个什么“类”不就行了。 如果要封装一个 SqlHelper,就要在接口上更安全。不要抛出 DbDataReader 作为返回值。
於黾 2014-12-26
  • 打赏
  • 举报
回复
connection.Close() 或者 using(OracleConnection connection = new OracleConnection(connectionString)) { using(OracleCommand cmd = new OracleCommand(strSQL,connection)) { try { } } } 就不需要你自己去释放了,出了using块它自己就关闭了
nicholasvb 2014-12-26
  • 打赏
  • 举报
回复
如何关闭connection连接, 我是这样调用的 OracleDataReader dr = DbHelperOra.ExecuteReader(querysql); while (dr.Read()) { txtmatecode.Text = dr.GetString(0); } dr.Close();

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧