捕捉SQL语句异常

wlcsdf 2012-05-19 12:14:42
从数据库中查找数据,如果没有查找到数据,会报错。代码如下:

//查询语句
public DataSet GetBSF(string BSF)
{
return data.RunProcReturn("select * from tb_Main where bsf='" + BSF + "'", "tb_Main");
}

/// <summary>
/// 执行命令文本,并且返回DataSet数据集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="tbName">数据表名称</param>
/// <returns>DataSet</returns>
public DataSet RunProcReturn(string procName, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}


为了防止出错错误,我准备用捕捉异常的方法。
请问,如果要捕捉异常,应该如何做呢?
...全文
438 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mirror然 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

我试了一下,基本上都可以从查询语句中找出问题。
我的本意,是了防止程序运行出错而崩溃。既然能从根源上防止,那就不用捕捉异常了。
说到底,捕捉异常,只为了调试方便而已。
[/Quote]

那就从最开始判断参数是否存在 一步步做验证
有参数错误 直接返回错误页面
还有return 返回 也可以去做判断
wlcsdf 2012-06-06
  • 打赏
  • 举报
回复
我试了一下,基本上都可以从查询语句中找出问题。
我的本意,是了防止程序运行出错而崩溃。既然能从根源上防止,那就不用捕捉异常了。
说到底,捕捉异常,只为了调试方便而已。
qldsrx 2012-05-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

追问一下,对数据集,应该捕捉哪种异常?
[/Quote]
任何异常都要捕获,不区分,你仅需要在RunProcReturn调用时捕获异常,而这个RunProcReturn只有可能返回数据库部分的异常,所以不需要区分异常类型,再者,报错了给个原始错误提示的情况下,没必要区分,难道你打算把所有错误信息重写一遍(根据错误类型重写)???
longlin_rc 2012-05-20
  • 打赏
  • 举报
回复
对于sql语句的问题,我的做法都是在catch(Exception ex)定一个断点,并监视ex,有异常时就会看到具体是什么问题
johnjun18 2012-05-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

追问一下,对数据集,应该捕捉哪种异常?
[/Quote]
不管那类异常,捉住他们老大Exception就差不多了吧
哈哈
wtnu200 2012-05-19
  • 打赏
  • 举报
回复
try
catch
cnfixit 2012-05-19
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/0yd65esw.aspx
mizuho_2006 2012-05-19
  • 打赏
  • 举报
回复
例如SQL语法错误,VS编译是发现不了的,只有执行SQL语句时才会报错。Catch会捕获这些异常并以MessageBox提示给用户。不然有语法错误的话程序就会关闭。
wlcsdf 2012-05-19
  • 打赏
  • 举报
回复
追问一下,对数据集,应该捕捉哪种异常?
Dotar 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:
try
catch


我是彻底的服了你了。。。。。。。
[/Quote]

try catch +1
test2050 2012-05-19
  • 打赏
  • 举报
回复
都会跑这里来提问,还不会用google 百度 msdn啊。
mizuho_2006 2012-05-19
  • 打赏
  • 举报
回复
try catch +1
风之影子 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
try
catch


我是彻底的服了你了。。。。。。。
[/Quote]

有问题吗?
wlcsdf 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
try
catch
[/Quote]

我是彻底的服了你了。。。。。。。

110,566

社区成员

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

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

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