winform 项目删除sql server事务问题

问题描述

winform 项目删除sql server事务问题

当我点击删除时报下面错误,是什么意思? 怎么解决?项目是winform 数据库是sql server

如果分配给命令的连接位于本地挂起事务中,ExecuteReader 要求命令拥有事务。命令的 Transaction 属性尚未初始化。

事务部分代码
bool isSucess = false;
using (DbBase DbContext = new DbBase(connectionName))
{
using (IDbTransaction tran = DbContext.DbTransaction)
{
try
{
var query = new DapperExQuery().AndWhere(item => item.S_CODE,
OperationMethod.Equal, param.S_CODE);//根据店铺code查询所有采购回复信息
var replyQuery = query.GetSqlQuery(DbContext);
T_PRODUCT_REPLY entity = DbContext.SingleOrDefault(replyQuery, tran);
if (entity != null)
{
isSucess = DbContext.Delete(replyQuery, tran);
if (isSucess)
{
var purchaseQuery =
new DapperExQuery().AndWhere(item => item.PP_CODE,
OperationMethod.Equal, entity.PP_CODE);//根据采购PP_CODE查询采购信息
var purchaseSqlQuery = purchaseQuery.GetSqlQuery(DbContext);

                            T_PRODUCT_PURCHASE pEntity =
                                DbContext.SingleOrDefault<T_PRODUCT_PURCHASE>(purchaseSqlQuery, tran);
                            if (pEntity != null)
                            {
                                isSucess = DbContext.Delete<T_PRODUCT_PURCHASE>(purchaseSqlQuery, tran);
                            }
                        }
                    }
                    else
                    {
                        isSucess = true;
                    }

                    if (isSucess)
                    {

                    }
                }
                catch (Exception e)
                {
                    isSucess = false;
                    throw e;
                }
                finally
                {
                    if (isSucess)
                    {
                        tran.Commit();
                    }
                    else
                    {
                        tran.Rollback();
                    }
                }
            }
            return isSucess;
        }

解决方案

SQL Server事务
Sql server 事务的两种用法
SQL Server 事务日志的问题

时间: 2024-11-03 08:11:14

winform 项目删除sql server事务问题的相关文章

SQL Server事务日志的几个常用操作

我们知道,SQL Server事务日志主要是用来记录所有事务对数据库所做的修改,如果系统出现故障,它将成为最新数据的唯一来源.日志的操作常有以下几个应用: 一.事务日志文件LDF的丢失 当我们不小删除或者LDF文件丢失的时候,数据库只剩下MDF文件,此时直接通过附加MDF是无法恢复数据库的,那我们怎么样才能恢复数据库呢?我们可以把SQL Server的日志文件分为两种形式:一类是无活动事务的日志,另一类是有活动事务的日志,我们分别根据两种情况来进行数据库恢复. 1.无活动事务的日志恢复 当文件并

如何手动删除SQL Server 2000默认实例

概要 删除 Microsoft SQL Server 2000 前应考虑的事项 删除 SQL Server 的步骤 删除 SQL Server 的特定实例 删除 SQL Server 的所有已知实例 删除 SQL Server 的默认实例 删除 SQL Server 的命名实例 如何包含全文检索删除 重新安装 SQL Server 前删除临时文件夹中的内容 参考 这篇文章中的信息适用于: 概要 本文中的步骤介绍如何为重新安装 SQL Server 程序的系统做准备工作. 删除 Microsoft

SQL Server 事务隔离级别详解

原文:SQL Server 事务隔离级别详解 标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设计数据库事务级别 SQL 事务隔离级别 概述      隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可以在查询(表级别)级别上设置事务隔离级别.事务隔离级别总共有6个隔离级别:READ UNCOMMITTED(未提交读,读脏),相当于(NOL

SQL Server 事务和锁详解

最近在项目中进行压力测试遇到了数据库的死锁问题,简言之,如下的代码在 SERIALIZABLE 隔离级别造成了死锁:  代码如下 复制代码 SELECT @findCount=COUNT(id) FROM MyTable WHERE [fk_related_id]=@Argument IF (@findCount > 0) BEGIN ROLLBACK TRANSACTION RETURN ERROR_CODE END INSERT INTO MyTable ([fk_related_id],-

关于SQL Server 事务、异常和游标详解(1/3)

本教程来说一下关于SQL Server 事务.异常和游标的事情下面来看教程,希望对你有帮助. 1. 事务的特点         事务有若干条T-SQL指令组成,并且所有的指令昨晚一个整体提交给数据库教程系统,执行时,这组指令要么全部执行完成,要么全部取消.因此,事务是一个不可分割的逻辑单元.           事务有4个属性:原子性(Atomicity).一致性(Consistency).隔离性(Isolation)以及持久性(Durability),也称作事务的ACID属性.        

彻底删除SQL Server注册表的方法_MsSql

一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

SQL Server事务隔离级别详解

SQL Server事务隔离级别详解 标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设置数据库事务级别 SQL 事务隔离级别 概述      隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可以在查询(表级别)级别上设置事务隔离级别.事务隔离级别总共有6个隔离级别:READ UNCOMMITTED(未提交读,读脏),相当于(NOLOCK)

彻底删除SQL Server注册表的方法

一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始--运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 1.彻底删除SQL Server: hkey_local_machine\software\Microsoft\MSSQLServer hkey_local_machine\software\Microsoft\Microsoft SQL Server hkey_curr

最简单删除SQL Server中所有数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,