我看了看C#关于数据库操作的一些资料,大概知道了象下面这样调用一个事务,但又有新的问题产生了!
请大家再帮忙看看!谢谢了!
...
SqlConnection mySqlConnection=new SqlConnectioon("Server=...",...);//新建立一个连接
mySqlConnection.Open(); //打开连接SqlTransaction mySqlTransaction=mySqlConnection.BeginTransaction(); //事务开始SqlCommand mySqlCommand=mySqlConnection.CreateCommand();mySqlCommand.Transaction=mySqlTransaction;
mySqlCommand.CommandText("insert..."); // 第一个SQL语句
mySqlCommand.ExecuteNoQuery();mySqlCommand.CommandText("update..."); // 第二个SQL语句
mySqlCommand.ExecuteNoQuery();mySqlTransaction.Commit(); //提交这个事务mySqlConnection.Close(); //关闭这个连接
...
现在的问题是:
1.如何判断这个事务是否成功的执行了?我在程序中如何得到这个信息?
2.如果没有成功的执行,如何回滚这个事务?谢谢大家了!
请大家再帮忙看看!谢谢了!
...
SqlConnection mySqlConnection=new SqlConnectioon("Server=...",...);//新建立一个连接
mySqlConnection.Open(); //打开连接SqlTransaction mySqlTransaction=mySqlConnection.BeginTransaction(); //事务开始SqlCommand mySqlCommand=mySqlConnection.CreateCommand();mySqlCommand.Transaction=mySqlTransaction;
mySqlCommand.CommandText("insert..."); // 第一个SQL语句
mySqlCommand.ExecuteNoQuery();mySqlCommand.CommandText("update..."); // 第二个SQL语句
mySqlCommand.ExecuteNoQuery();mySqlTransaction.Commit(); //提交这个事务mySqlConnection.Close(); //关闭这个连接
...
现在的问题是:
1.如何判断这个事务是否成功的执行了?我在程序中如何得到这个信息?
2.如果没有成功的执行,如何回滚这个事务?谢谢大家了!
解决方案 »
- C#web里GridView的用法
- 做C#,.net这行大部分人一般工资到个什么价位就稳定不涨了!
- 关于Nhibernate的问题
- 请教一个问题
- 请教几个关于InstallShield X制作安装包的问题
- 点击TreeView树型菜单,然后画面就会跟着变化...
- 如何在使打印出来的内容可以在自己定义的位置上打印出来?(在线等待,高分求助)
- web中的textBox没有focused事件?
- 请教一个问题:请大家帮帮我,非常感谢
- WebForm中可以運用PrintDialog嗎?
- 如保得到datagrid中每一列的数据类型?
- 我想在页面上搞一个打印按钮,按钮的功能是产生一个打开的word文件,里面有当前页面的某些内容,目的是为了打印
i=mySqlCommand.ExecuteNoQuery(str1);
j=mySqlCommand.ExecuteNoQuery(str2);
if(i>0 && j>0)
mySqlTransaction.Commit();
else
mySqlTransaction.Rollback();
在我的程序中,mySqlCommand.ExecuteNoQuery();没有参数啊!
你的str1和str2是不是我的程序中对应的两个SQL语句?
谢谢!
请参考下面的示例创建一个 SqlConnection 和一个 SqlTransaction。它还演示如何使用 BeginTransaction、Commit 和 Rollback 方法。
public void RunSqlTransaction(string myConnString)
{
SqlConnection myConnection = new SqlConnection(myConnString);
myConnection.Open(); SqlCommand myCommand = new SqlCommand();
SqlTransaction myTrans; // Start a local transaction
myTrans = myConnection.BeginTransaction();
// Must assign both transaction object and connection
// to Command object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans; try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine("Error: {1}", e.Message);
Console.WriteLine("Error reported by {1}.", e.Source);
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}
}
[