搞不定啊,如何捕捉sqlDataReader创建时的异常?

rick29 2004-11-21 08:02:41
这个问题听起来很简单,可是,如下代码:

System.Data.SqlClient.SqlDataReader sqlReader;

try
{
...
sqlReader = sqlCmd.ExecuteReader();
...
}
catch (Exception e)
{
...
}
finally
{
sqlReader.Close(); // 编译出错
}

我希望在执行sqlCmd.ExecuteReader()时,若出错(比如写错了SQL语句),可以截获异常信息,但是
如上的代码就编译不过去,说sqlReader.Close()处的sqlReader未赋值。

如果我把sqlReader = sqlCmd.ExecuteReader();写在try块之外,那就不能处理异常了,因为sqlDataReader不是用new创建的,而是用sqlCommand.ExecuteReader()创建的,我不能在try块之外再new一个吧(这不是浪费么)?那么,我应该怎么办?俺实在有点迷茫,望高手指点一二..
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rick29 2004-11-21
  • 打赏
  • 举报
回复
OK,这么简单俺怎么就没想到呢,谢谢大家!
xinbin1122 2004-11-21
  • 打赏
  • 举报
回复
System.Data.SqlClient.SqlDataReader sqlReader=null;

try
{
...
sqlReader = sqlCmd.ExecuteReader();
...
}
catch (Exception e)
{
...
}
finally
{
sqlReader.Close(); // 编译ok
}
bflovesnow 2004-11-21
  • 打赏
  • 举报
回复
写到
try{
sqlReader = sqlCmd.ExecuteReader(CommandBehaviro.CloseConnection);
}
catch
{
}
CMIC 2004-11-21
  • 打赏
  • 举报
回复
System.Data.SqlClient.SqlDataReader sqlReader=null;

110,532

社区成员

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

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

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