当前位置: 代码迷 >> ASP.NET >> try{}catch{}错误有关问题
  详细解决方案

try{}catch{}错误有关问题

热度:7508   发布时间:2013-02-25 00:00:00.0
try{}catch{}异常问题?
程序中用到了
try{}catch{}语句,
如下代码:

  try
  {
  string carid = Request.QueryString["id"].ToString();

  string sql = "*******";

  if (Convert.ToInt32(dll.Query(sql).Rows.Count) == 1)
  {
  lblBname.Text = dll.Query(sql).Rows[0][0].ToString();
  }
  }
  catch
  {
  Response.Write("<script>history.go(-1);</script>");
  }

在正常的链接情况下,正常获取到carid的值,但如果在地址栏上id=5的后头加上个'号的话,会提示不能把nvarchar值转成列int型...我都有用try{}catch{}来获取异常了,为何不是执行catch{}里头的语句?谢谢

------解决方案--------------------------------------------------------
将'替换成空,同时也防止sql注入
------解决方案--------------------------------------------------------
if (Convert.ToInt32(dll.Query(sql).Rows.Count) == 1) 

改为 int i=Convert.ToInt32(dll.Query(sql).Rows.Count);
if(i==1)
------解决方案--------------------------------------------------------
探讨
楼上的,还是照样提示出错:

异常详细信息: System.Data.SqlClient.SqlException: 将 nvarchar 值 '14'' 转换为数据类型为 int 的列时发生语法错误。