这段代码为什么要这样写?

Badapple0412 2006-11-19 04:56:52
在网上看到的一个ASP.NET 2.0 数据库(access)访问的通用类,下面是其中的一段返回指定sql语句的OleDbDataReader对象的方法。

    public static OleDbDataReader dataReader(string sqlstr)
{
OleDbDataReader dr = null;
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;

dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
dr.Close();
closeConnection();
}
catch { }
}
return dr;
}//返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。
public static void dataReader(string sqlstr, ref OleDbDataReader dr)
{
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;
dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
if (dr != null && !dr.IsClosed)
dr.Close();
}
catch
{
}
finally
{
closeConnection();
}
}
}//返回指定sql语句的OleDbDataReader对象,使用时请注意关闭


不明白为什么要这样写

public static OleDbDataReader dataReader(string sqlstr)
{
......
}
public static void dataReader(string sqlstr, ref OleDbDataReader dr)
{
......
}

我会单独用OleDbDataReader,可是他这样写我就看不懂了,为什么要分两个?有什么区别?
可以合并为一个吗?

另外注释中还说“使用时请注意关闭”,我都不知道怎么使用这个方法,而且怎么关闭呢?
...全文
105 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Badapple0412 2006-11-20
  • 打赏
  • 举报
回复
既然效果一样为什么要写两个?

经典论坛上的朋友说这是重载?
liushui1981 2006-11-19
  • 打赏
  • 举报
回复
没什么意思!!只是写法上的问题!!
你随便使用那个也行!!
关于关闭问提!
第一个,,通过return 返回一个reader,当燃是在使用完后close
第二,,是通过ref带入,,效果一样
PCHWBANK 2006-11-19
  • 打赏
  • 举报
回复
我也想知道
Badapple0412 2006-11-19
  • 打赏
  • 举报
回复
那这两个的出参和入参分别是什么呢?

怎么调用他们?并且怎么关闭呢?
hongyin163 2006-11-19
  • 打赏
  • 举报
回复
ref OleDbDataReader dr 得意思是dr是出参吗?表示返回值是dr
MatrixB 2006-11-19
  • 打赏
  • 举报
回复
两种不同的方法而已,具有不同的出参和入参。
比如你调用object的ToString方法会有不同的参数。。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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