c# - INSERT 和 UPDATE 的执行状态 - MS SQL Server

标签 c# sql-server entity-framework

我遇到了一个有点令人沮丧的问题。

在较低的层次上:我想知道 proc 中的 INSERT 或 UPDATE 查询是否成功。我不是 100% 确定所有查询(除了 SELECT)是否返回一个状态。我知道 SQL Server 为所有存储过程提供返回类型,目前我所有的返回类型都是 Integer。

在中间层:在我的存储库中,我想使用 Entity Framework 调用我的存储过程并将状态作为转换的(来自 int 的) bool 值从过程执行返回到我的服务。

在更高的层次上:我希望能够使用我的服务返回的 bool 值来向 MVC Controller 报告正在执行的任务。

在我的问题最重要的一层,我有以下代码:

public virtual ObjectResult<int> Proc_AddApprovalProcessor(string userId, string approverId, int approvalOrder)
{
     return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<int>(
        "EXECUTE [dbo].[Proc_AddApprovalProcessor] @userId, @approverId, @approvalOrder",
            new SqlParameter { ParameterName = "userId", Value = userId },
            new SqlParameter { ParameterName = "approverId", Value = approverId },
            new SqlParameter { ParameterName = "approvalOrder", Value = approvalOrder }).FirstOrDefault();
}

最佳答案

确保您的插入/更新存储过程以以下行结尾:

SELECT @@ROWCOUNT

然后检查返回码并检查它是否为 1(或者您期望插入/更新的行数)。

关于c# - INSERT 和 UPDATE 的执行状态 - MS SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121720/

相关文章:

c# - 将 IList<DateTime> 中的连续日期组合成范围

python - 如何跨 SQL Server 和 Postgres 比较表中的数据?

sql - 在 SQL Server 中查找并拆分

c# - 多个数据提供者/ORM 上的存储库模式?

c# - 从下拉 Angular 中删除选定值

c# - 在 C# 中临时存储和重新设置属性值

c# - 使用声明 Entity Framework 上下文

asp.net-mvc-3 - MVC3 View 模型与 Entity Framework 模型

c# - 在 MVC View 之间传递值

javascript - 使用 Swagger 和 Node.js 以及 SQL Server 作为数据库的 REST API