List<string> sqlList= new List<string>();
sqlList.Add("update pictures set re='testb' where infouuid='test'");
sqlList.Add("update pictures set ref='testb' where infouuid='test0'");
sqlList.Add("update pictures set re='testb' where infouuid='test2'");
using (DbConnection connection = GetConnection())
{
connection.Open();
DbTransaction transaction = connection.BeginTransaction();
DbCommand cmd = connection.CreateCommand();
cmd.Transaction = transaction; foreach (string strSql in sqlList)
{
if (!string.IsNullOrEmpty(strSql))
{
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
}
}
transaction.Commit();
}代码如上:1,3语句正确,2语句有错误。 我希望3条更新语句要么全部执行成功,只要有一条出错就回滚。但实际是1执行成功了,到2出错后,并没有回滚。数据库用的MySql。
sqlList.Add("update pictures set re='testb' where infouuid='test'");
sqlList.Add("update pictures set ref='testb' where infouuid='test0'");
sqlList.Add("update pictures set re='testb' where infouuid='test2'");
using (DbConnection connection = GetConnection())
{
connection.Open();
DbTransaction transaction = connection.BeginTransaction();
DbCommand cmd = connection.CreateCommand();
cmd.Transaction = transaction; foreach (string strSql in sqlList)
{
if (!string.IsNullOrEmpty(strSql))
{
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
}
}
transaction.Commit();
}代码如上:1,3语句正确,2语句有错误。 我希望3条更新语句要么全部执行成功,只要有一条出错就回滚。但实际是1执行成功了,到2出错后,并没有回滚。数据库用的MySql。
解决方案 »
- 一个简单的C#代码
- 下拉框没有合适选项,需要手动输入的问题
- winform中如何判断XML里面某个节点数值是否存在?
- 【初学者求教】SQL语句
- InstallShield中,选择安装路径时,如果用户手动输入的路径中有多余的反斜杠,如果去掉,例如:C:\Program File\\\\Application\\\\\DEMO\\\
- vs2005当中怎样显示全部代码!!!---包括自动生成的窗体代码
- 如何讓service自己自動停止
- ***************自定义公式运算问题!!***************加急!!!!
- 做一个本地端的proxy?
- 高手请帮忙察看一下这段程序有什么问题?
- 转换格式
- c#菜鸟问题
using (DbConnection connection = GetConnection())
{
connection.Open();
DbTransaction transaction = connection.BeginTransaction();
DbCommand cmd = connection.CreateCommand();
cmd.Transaction = transaction; try
{
foreach (string strSql in sqlList)
{
if (!string.IsNullOrEmpty(strSql))
{
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
}
}
transaction.Commit();
}
catch
{
transaction.Rollback();
}
}没有用。