描述:在用户交互界面根据操作的结果拼凑N(N<10)条SQL语句,再用户最后点击确认提交的时候再执行,我的想法是把SQL语句存到个一维字符串数组里,最后循环读出来执行,当然如果有一个不成功就全部rollback.
因为自学资料都是自己找的,参考了dbhelper(也不知道是不是原版的,发现很多网站版本都不同),自己拿来主义的执行SQL语句关键代码如下public int ExecSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(ConnString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
}
根据以上代码循环执行SQL的话,不知道如何加入COMMIT或者ROLLBACK语句了。或者说我这个ExecSql本身需要修改以方便实现这个功能???先谢谢大伙
因为自学资料都是自己找的,参考了dbhelper(也不知道是不是原版的,发现很多网站版本都不同),自己拿来主义的执行SQL语句关键代码如下public int ExecSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(ConnString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
}
根据以上代码循环执行SQL的话,不知道如何加入COMMIT或者ROLLBACK语句了。或者说我这个ExecSql本身需要修改以方便实现这个功能???先谢谢大伙
解决方案 »
- window service安装错误
- AspNetPager控件
- ftp文件下载时,可以选择路径
- 调查:能否创建固定表头、表格体滚动的Repeater?顺便散100分
- 菜鸟 ASP.net问题 下载的
- a,b,c都为int, a+b>c看起来很简单,但实际上是有错误的,应为a+b有可能溢出,请高手指点
- 关于DataGrid的问题
- net_lover(孟子E章)请进,有问题 请教,关于DataGrid添加确认删除对话框
- 用VB。net做组件,用什么方法把字符串输到页面上去(web forms)
- asp.net中关闭当前系统是用什么方法?
- 用户控件缓存后内容空白和网站效率问题
- 高手帮忙看一下,GridView控件....我吐得了
public static bool ExecuteTransWithArrayList(ArrayList lstComm)
{
bool isSucc = false;
//创建连接
using (SqlConnection conn = new SqlConnection(_connectionString))
{
SqlTransaction transaction = null;
try
{
//打开连接
conn.Open();
//开始事务
transaction = conn.BeginTransaction();
int totalCount = 0;
int count = lstComm.Count;
//设置参数
if (lstComm != null && count > 0)
{
for (int i = 0; i < count; i++)
{
SqlCommand comm = (SqlCommand)lstComm[i];
//设置命令数据库连接
comm.Connection = conn;
comm.Transaction = transaction;
//执行数据库操作
totalCount += comm.ExecuteNonQuery();
}
}
//提交事务
transaction.Commit();
//设置Error标志
isSucc = true;
}
catch (Exception e)
{
//如果开始了事务,则回滚事务
if (transaction != null)
{
transaction.Rollback();
}
throw e;
}
finally
{
//连接打开时,关闭连接
if (conn != null)
{
conn.Close();
}
}
} return isSucc;
}
string[].怎么改,你自己琢磨下,其实好多开源的Sqlhelper都有事务功能的。