try catch问题。

aspxcss 2009-01-08 09:30:41
用VS2005生成是没有报错,代码执行时报错
“第 1 行: '5' 附近有语法错误。”

代码如下:
#region 执行语句返回DataSet数据集
/// <summary>
/// 执行语句返回DataSet数据集
/// </summary>
/// <param name="strSQL">要执行的SQL语句</param>
/// <returns>DataSet集合</returns>
public DataSet ReturnDataSet(string strSQL)
{
CheckConnection();
try
{
SqlDataAdapter sda = new SqlDataAdapter(strSQL, con);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
//throw new Exception(ex.Message);
}
finally
{
con.Close();
}
}
#endregion
...全文
92 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
aspxcss 2009-01-08
  • 打赏
  • 举报
回复
嘿嘿。学的一知半解,见笑了。
isboc 2009-01-08
  • 打赏
  • 举报
回复
有意思。呵呵~
空空空 2009-01-08
  • 打赏
  • 举报
回复
catch 只是帮你分析开发语言语法有没有错,不会帮你分析SQL语句有没有错的
readfuture 2009-01-08
  • 打赏
  • 举报
回复

#region 执行语句返回DataSet数据集
/// <summary>
/// 执行语句返回DataSet数据集
/// </summary>
/// <param name="strSQL">要执行的SQL语句 </param>
/// <returns>DataSet集合 </returns>
public DataSet ReturnDataSet(string strSQL)
{
CheckConnection();
try
{
SqlDataAdapter sda = new SqlDataAdapter(strSQL, con);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
catch
{
return null;
}
finally
{
con.Close();
}
}
#endregion

这样就不会报错了,你注意在程序里判断返回的是否为空就行了;
niitnanfeng 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 aspxcss 的回复:]
我的SQL语句是select top 5 * from article


我把5换成了函数接收的一个参数

select top '"+canshu+"' * from article

是不是不可行呀。
[/Quote]
把你的单引号去掉
rascalwm 2009-01-08
  • 打赏
  • 举报
回复
错误和异常是2个概念
先把这2个弄清楚 try catch 只能抓住异常 抓不住错误的
niitnanfeng 2009-01-08
  • 打赏
  • 举报
回复
错误在编译的时候就可以发现,异常是在执行过程中发生的意外,由潜在的错误机率导致(错误是由100%的错误机率导致,就如9楼说的已经抛出了异常,只是你没去处理这个异常(你在那去处理的话就不会出现错误信息),所以就在页面显示出来了。
aspxcss 2009-01-08
  • 打赏
  • 举报
回复
我的SQL语句是select top 5 * from article


我把5换成了函数接收的一个参数

select top '"+canshu+"' * from article

是不是不可行呀。
niitnanfeng 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aspxcss 的回复:]
确实是SQL语句有问题,我的疑问是为什么catch没有正确抛出异常信息,而是报错了。
[/Quote]
try catch抛出的是异常程序的,你的sql语句的问题是错误。以后最好写了sql语句在分析器里先执行下。首先要保证sql语句的正确。
aspxcss 2009-01-08
  • 打赏
  • 举报
回复
有的朋友没看清楚,确实是SQL语句存在问题,可是为什么catch没有正确抛出异常。
我姓区不姓区 2009-01-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aspxcss 的回复:]
确实是SQL语句有问题,我的疑问是为什么catch没有正确抛出异常信息,而是报错了。
[/Quote]
抛出啦,不然怎么会报错呢
你在catch里面不就是throw了吗
ReyZhang 2009-01-08
  • 打赏
  • 举报
回复
有可能参数strSQL有错误,检察一下
ljhcy99 2009-01-08
  • 打赏
  • 举报
回复
1, 不是 所有语句都能返回DataSet 对象,假如return ds前出了错误,就没有语句来返回 DataSet 对象了。
2,看看strSQL拼写是否有错误,
3,con连接对象是否正确
89993004 2009-01-08
  • 打赏
  • 举报
回复
看不出明显的问题,打个断点试试
Dobzhansky 2009-01-08
  • 打赏
  • 举报
回复
if (失败) 没有照顾到的地方则必然失败
aspxcss 2009-01-08
  • 打赏
  • 举报
回复
确实是SQL语句有问题,我的疑问是为什么catch没有正确抛出异常信息,而是报错了。
Dobzhansky 2009-01-08
  • 打赏
  • 举报
回复
盲目假设造成的, 你要的东西未必在那里
jiang_jiajia10 2009-01-08
  • 打赏
  • 举报
回复
“第 1 行: '5' 附近有语法错误。”
说明你的SQL语句有问题。打印出来放到查询分析器里执行一下就知道了
xfreyes 2009-01-08
  • 打赏
  • 举报
回复
应该是你的strSQL 语句有问题

62,074

社区成员

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

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

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

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