Database dbTest;
dbTest = DatabaseFactory.CreateDatabase(strConn);
DbCommand dbCommand = dbTest.GetSqlStringCommand("Insert ......");
using (DbConnection conn = dbTest.CreateConnection())
{
conn.Open();
DbTransaction dbTransation = conn.BeginTransaction();
try
{
dbTest.ExecuteNonQuery(dbCommand);
///执行完成就回滚
dbTransation.Rollback();
//直接在这回滚,但还是会保存数据
}是使用方法有什么不对吗?
dbTest = DatabaseFactory.CreateDatabase(strConn);
DbCommand dbCommand = dbTest.GetSqlStringCommand("Insert ......");
using (DbConnection conn = dbTest.CreateConnection())
{
conn.Open();
DbTransaction dbTransation = conn.BeginTransaction();
try
{
dbTest.ExecuteNonQuery(dbCommand);
///执行完成就回滚
dbTransation.Rollback();
//直接在这回滚,但还是会保存数据
}是使用方法有什么不对吗?
解决方案 »
- 对象能在运行时添加属性吗?
- 函数表达式 CheckTime(string Operate)
- 没有为命令对象设置命令。急
- 关闭窗体的判断问题
- 100分求解框架A如何刷新框架B中的多个页面?
- SQL server 中的图片如何在C# winform 中的picturebox显示?
- 求助:没有可用的错误信息:DB_E_BADORDINAL(0x80040E55)。
- 100分紧急求助
- 顶过此贴的兄弟请过来接分---《这个问题问了好多人了,都不见解决...(跟贴者有分)》~_~
- 想去找一个.net的工作,一般招聘.net的公司都会考一些什么(.net方面的)?
- 怎样在类库中引入WPF窗体文件
- c#操作oracle,有没有类似sqlhelp之类的通用操作类
你把的try部分改成下面这样试试:try
{
dbTest.ExecuteNonQuery(dbCommand);
dbTransation.Commit(); //提交事务
}
catch
{
dbTransation.Rollback(); //如果发生异常,事务回滚
}
DbTransaction dbTransation = conn.BeginTransaction();
dbCommand.Transaction = dbTransation; // 注意这里
try
{
dbTest.ExecuteNonQuery(dbCommand);
///执行完成就回滚
dbTransation.Rollback();
//直接在这回滚,但还是会保存数据
}
dbTest = DatabaseFactory.CreateDatabase(strConn);
DbCommand dbCommand = dbTest.GetSqlStringCommand("Insert ......");
using (DbConnection conn = dbTest.CreateConnection())
{
conn.Open();
DbTransaction dbTransation = conn.BeginTransaction();
try
{
//添加
cmd.Transaction = dbTransation;//cmd是SqlCommand对象,换成你的变量试试
dbTest.ExecuteNonQuery(dbCommand);
///执行完成就回滚
dbTransation.Rollback();
//直接在这回滚,但还是会保存数据
}
Database dbTest;
dbTest = DatabaseFactory.CreateDatabase(strConn);
DbCommand dbCommand = dbTest.GetSqlStringCommand("......");
using (DbConnection conn = dbTest.CreateConnection())
{
conn.Open();
DbTransaction dbTransation = conn.BeginTransaction();
dbCommand.Transaction = dbTransation; // 加了这句
try
{
dbTest.ExecuteNonQuery(dbCommand);
///执行完成就回滚
dbTransation.Rollback();
//直接在这回滚,但还是会保存数据
}
catch(Exception ex)
{
//这里会在执行的时候报
The transaction is either not associated with the current connection or has been completed
dbCommand.Transaction = dbTransation; // 加了这句
在执行
db.ExecuteNonQuery(dbCommand);
出错,报
The transaction is either not associated with the current connection or has been completed