错误处理问题,大家帮帮小弟

roklba 2007-04-09 11:12:13
执行sql的函数:
public void exeSql(string sql)
{
SqlConnection conn=db.getconn();
conn.Open();
com=new SqlCommand();
com.Connection=conn;
com.CommandText=sql;
try
{
com.ExecuteNonQuery();
}
catch(System.Exception ex)
{
error.add(ex.Message);//添加错误日志
}
}
错误处理error类的一个add方法:
public static void add(string content)
{
SqlConnection conn=db.getconn();
conn.Open();
SqlCommand cm=new SqlCommand("insert into error (url,content) values ('"+System.Web.HttpContext.Current.Request.Url.ToString()+"','"+content+"')",conn);
cm.ExecuteNonQuery();
cm.Dispose();
conn.Close();
}
现在的问题就是当我执行的sql语句的错的时候,执行到add添加错误日志的时候错误还在。也就是添加不了错误日志。
如:
exeSql(select * form tb order id desc)//少了一个by
在执行到add函数的cm.ExecuteNonQuery();时,还是会在页面上显示一个“id附近有语法错误”的错误。
...全文
477 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltmltm123456 2007-04-10
  • 打赏
  • 举报
回复

catch(System.Exception ex)
{
conn.Close();
error.add(ex.Message);//添加错误日志
}
这里把原来的连接给先关闭掉应该要好些吧

fmjwn 2007-04-10
  • 打赏
  • 举报
回复
SqlCommand cm=new SqlCommand("insert into error (url,content) values ('"+System.Web.HttpContext.Current.Request.Url.ToString()+"','"+content+"')",conn);

'"+content+"' 得处理一下吧。
roklba 2007-04-10
  • 打赏
  • 举报
回复
顶一下
roklba 2007-04-10
  • 打赏
  • 举报
回复
我改用xml存了。结贴吧
roklba 2007-04-09
  • 打赏
  • 举报
回复
有没有什么办法,在执行add方法时。先把以前连接产生的影响去掉,然后再添加啊。(不知要怎么形容了)
roklba 2007-04-09
  • 打赏
  • 举报
回复
db.getconn():
public static SqlConnection getconn()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["constr1"]);
return conn;
}
-----------
//这里改了下
catch(System.Exception ex)
{
conn.Close();
error.add(ex.Message);//添加错误日志
}
jimu8130 2007-04-09
  • 打赏
  • 举报
回复
看下你现在的代码
roklba 2007-04-09
  • 打赏
  • 举报
回复
我又专门建了个连接,也是不行?
怎么不行了?有什么错误,你单步调试下
-------------------------------------------
还是跟原来一样的报错
fccvip 2007-04-09
  • 打赏
  • 举报
回复
你这种处理方法太麻烦
fccvip 2007-04-09
  • 打赏
  • 举报
回复
其实不如写到一个文本文件里
jimu8130 2007-04-09
  • 打赏
  • 举报
回复
我又专门建了个连接,也是不行?
怎么不行了?有什么错误,你单步调试下
jimu8130 2007-04-09
  • 打赏
  • 举报
回复
这个当然不行,这个连接执行sql语句出现问题,你还用这个连接来写入数据库当然不行,这两个要不同的连接!!!!!!!!
---
这个是自然的道理,如同两台机器通信样的,先建立一个连接,a往b发消息,结果出错了,如果你想继续用这个连接发消息是不是应该要这个错误被处理以后再发?
而你现在却是对于这个出错的连接上继续进行操作当然会出问题!这个是常识!
你可以试验下,在catch后
try{}catch{} 这里进行写数据库日志,前提是上一个连接close掉,然后在open
roklba 2007-04-09
  • 打赏
  • 举报
回复
我又专门建了个连接,也是不行?
roklba 2007-04-09
  • 打赏
  • 举报
回复
catch(System.Exception ex)
{
conn.Close();
error.add(ex.Message);//添加错误日志
}
这里把原来的连接给先关闭掉应该要好些吧
------------------------------
关了也一样的
------------------------------------------------------------------------
这个当然不行,这个连接执行sql语句出现问题,你还用这个连接来写入数据库当然不行,这两个要不同的连接!!!!!!!!
-------------------------------
能说下原理么?
jimu8130 2007-04-09
  • 打赏
  • 举报
回复
这个当然不行,这个连接执行sql语句出现问题,你还用这个连接来写入数据库当然不行,这两个要不同的连接!!!!!!!!
roklba 2007-04-09
  • 打赏
  • 举报
回复
db.getconn()--你这个函数得到的connection是同一个还是new了不同的?
--------------------
同一个的
daishengs 2007-04-09
  • 打赏
  • 举报
回复
catch(System.Exception ex)
{
conn.Close();
error.add(ex.Message);//添加错误日志
}
这里把原来的连接给先关闭掉应该要好些吧
jimu8130 2007-04-09
  • 打赏
  • 举报
回复
db.getconn()--你这个函数得到的connection是同一个还是new了不同的?
真相重于对错 2007-04-09
  • 打赏
  • 举报
回复
你这种方式不好,已经数据库连接出错,还要打开连接
yuanwen813 2007-04-09
  • 打赏
  • 举报
回复
select * form tb order id desc
order by??
加载更多回复(2)

62,074

社区成员

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

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

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

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