第一个:资源释放 using (SqlConnection con = new SqlConnection())
{
SqlCommand cmd = new SqlCommand();
Prepare(con, cmd, cmdType, cmdText, cmdParms);
return cmd.ExecuteNonQuery();
}
采用using结构,当内部引起异常时,是否会自动关闭连接释放资源?第二个:抛出异常
我把一切关于数据库的操作做成了一个WebService,在程序里通过调用WebService进行相关数据操作。有一个存储过程,如下RAISERROR('Rais Error1', 16, 1) WITH NOWAIT --引发一个异常这个异常引发后会反馈给WebService,那会不会继续反馈给所调用的程序?
{
SqlCommand cmd = new SqlCommand();
Prepare(con, cmd, cmdType, cmdText, cmdParms);
return cmd.ExecuteNonQuery();
}
采用using结构,当内部引起异常时,是否会自动关闭连接释放资源?第二个:抛出异常
我把一切关于数据库的操作做成了一个WebService,在程序里通过调用WebService进行相关数据操作。有一个存储过程,如下RAISERROR('Rais Error1', 16, 1) WITH NOWAIT --引发一个异常这个异常引发后会反馈给WebService,那会不会继续反馈给所调用的程序?
2.返回给调用程序的错误应该就是提示WebService异常。没有测试,不一定正确。根据以前的经验看应该是这样。逍遥兄早~
2.是这样的结构:数据库——WebServic——应用程序。由数据库执行SQL语句引发的异常,应用程序能捕捉到吗?
2.嗯
http://msdn.microsoft.com/zh-cn/library/yh598w02(VS.80).aspx
里面有using语句的本质 解释
(2)我觉得要看WebService里怎么处理了,如果WebService处理了,应该不会继续反馈给所调用的程序,否则是要提交给所调用的程序的。请楼主有时间测试!
1这个我觉得不会,using的机制应该是针对Connection吧,难道using里出现任何异常他都会关掉连接吗?这个真没研究过, 不过你在执行SQL语句外面套个try catch,catch里如果捕获到异常就自己写行代码把连接关掉就完了呗
没有研究就没有发言权,我就不乱说误导LZ了,我觉得有时间LZ还是自己测试一下的好。