可以。至于你遇到的异常,你写了try...catch你就丧失了调试能力。你连vs调试器都不能断到抛出异常的那条语句上了,你怎么来调试 execStoredProcedure 方法呢?你又怎么知道ExcuteNoQueryNotTran 有什么错误呢?如果这两个东西不是你的,那么给它的作者发消息,然后等着修改。否则,不要乱写try...catch,让你的vs调试器直接在抛出异常的语句上进入调试状态。
解决方案 »
- 多条件查询,并非stringbuilder.append 拼接字符串。每次点击都出现查询结果并记录其它值
- VS2010怎么转换到VS2005
- 怎样将","转换成","?
- 查询sql server 2000数据库时超时
- Button_Click事件如何刷新框架?
- 关于asp.net中动态生成treeview 的续;
- 浏览aspx时无法显示控件
- 如何利用webservice收发短信???求移动发给我短信!我怎么收啊,谁有文献啊!!
- .net前台引用的自定义控件后台代码访问部到
- 请问在.NET下如何实现网站的简繁同步
- 前台调取后台的字符串,并根据字符串的值,确定<a>的href
- 手机网页支付宝 异步通知 出错
public static void ExcuteNoQueryNotTran(ArrayList al, SqlConnection con, SqlTransaction tran)
{
if (con.State != ConnectionState.Open)
con.Open(); SqlCommand cmd = con.CreateCommand();
cmd.Transaction = tran;
if (al.Count == 0)
{
throw new Exception("SQL Is Null");
}
try
{
string sql;
for (int i = 0; i < al.Count; i++)
{
sql = (String)al[i];
if (sql.Trim() != "")
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ed)
{
throw ed;
}
finally
{
con.Close();
}
} public static void execStoredProcedure(string sp_name, SqlParameter[] para, SqlConnection con, SqlTransaction tran)
{
try
{
if (con.State != ConnectionState.Open)
con.Open(); SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.Transaction = tran; comm.CommandText = sp_name;
comm.CommandType = CommandType.StoredProcedure; for (int i = 0; i < para.Length; i++)
{
comm.Parameters.Add(para[i]);
} comm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
存储过程里本身就写了commit了,一旦执行不成功,它就自己rollback,你再写commit和rollback当然是无效的
有几组数据需要向本地数据表插入,如果成功则执行本地存储过程,向另一台服务器上的数据表中插入数据,任何一个失败则回滚.
{
con.Close();//把这个删除了
}