C#TRY CATCH错误,请指教
在类里面写的这个函数,在WINFROM调用时,在有错误的时候走到这里throwex;就报错了,请大神指教。publicclassSQLDBHelper{publicsta...
在类里面写的这个函数,在WINFROM调用时,在有错误的时候走到这里throw ex;就报错了,请大神指教。
public class SQLDBHelper
{
public static SqlConnection connection;
public static SqlConnection Connection
{
.......................这里是没问题的,字数问题省略了。
}
#region 增,删,改ExecuteNonQuery
/// <summary>
/// 单个数据增,删,改
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public int ExecuteCommand(string safeSql)
{
//Connection connection = new Connection();
SqlTransaction Trans = Connection.BeginTransaction();
SqlCommand cmd = new SqlCommand(safeSql, Connection);
try
{
cmd.Transaction = Trans;
int result =cmd.ExecuteNonQuery();
Trans.Commit();
return result;
}
catch (SqlException ex)
{
Trans.Rollback();
Trans.Dispose();
cmd.Dispose();
throw ex;
}
finally
{
connection.Close();
connection.Dispose();
}
}
#endregion
请大神们给出解决的方法和代码,谢谢 展开
public class SQLDBHelper
{
public static SqlConnection connection;
public static SqlConnection Connection
{
.......................这里是没问题的,字数问题省略了。
}
#region 增,删,改ExecuteNonQuery
/// <summary>
/// 单个数据增,删,改
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public int ExecuteCommand(string safeSql)
{
//Connection connection = new Connection();
SqlTransaction Trans = Connection.BeginTransaction();
SqlCommand cmd = new SqlCommand(safeSql, Connection);
try
{
cmd.Transaction = Trans;
int result =cmd.ExecuteNonQuery();
Trans.Commit();
return result;
}
catch (SqlException ex)
{
Trans.Rollback();
Trans.Dispose();
cmd.Dispose();
throw ex;
}
finally
{
connection.Close();
connection.Dispose();
}
}
#endregion
请大神们给出解决的方法和代码,谢谢 展开
3个回答
展开全部
公共语言运行库支持异常对象和异常处理模型,该模型是基于所述码块的保护的概念。创建一个运行时异常发生时,异常的对象表示。也可以从一个合适的基异常类派生来创建自己的异常类。
in所有语言运行时都以同样的方式来处理异常。每种语言使用的try / catch /最后的结构化异常处理的形式。
可能会抛出一个异常代码段被放置在一个try块中,并且代码来处理Catch块上的异常。 catch块是一系列语句以关键字开始追赶,其次是异常的类型和操作的语句被执行。
in所有语言运行时都以同样的方式来处理异常。每种语言使用的try / catch /最后的结构化异常处理的形式。
可能会抛出一个异常代码段被放置在一个try块中,并且代码来处理Catch块上的异常。 catch块是一系列语句以关键字开始追赶,其次是异常的类型和操作的语句被执行。
追问
那我怎么才能解决这个问题?如何能得到throw ex;返回代码?
展开全部
你的问题本质上不是try catch的问题,而是ado.net使用不当引起
在catch里面再throw毫无意义
connection最好用using的方式,不要写成全局静态变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你是写解决throw出错的问题,还是想怎么地。
要是想解决throw出错的问题,那在外面调用这个函数的地方,加上捕获,程序不就不死了。
要是想解决throw出错的问题,那在外面调用这个函数的地方,加上捕获,程序不就不死了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询