- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
====更正====
从 Database.ExecuteSqlCommand 引发 SQL 异常。我期待一个异常(exception),但实际上并没有从我的存储过程中得到任何改变。在调试中,我看到了另一个异常并混淆了这两种行为。 我无法删除问题,因为它有答案。
原始问题
在 EF 5(可能还有其他)中,Database.ExecuteSqlCommand 在发生 SQL 异常时返回 -1。在 Visual Studio 中调试时,异常可见,但 try/catch block 看不到错误。
数据库对象上没有保存错误或状态的属性。该方法的结果是一个整数。您如何访问和捕获错误?
更正示例
try
{
int result = ctx.Database.ExecuteSqlCommand("EXEC dbo.Proc @prm", param );
}
catch(Exception ex)
{
//This works
throw ex;
}
最佳答案
您必须在 SQL 服务器中抛出错误,例如:
1)将以下存储过程添加到您的数据库中:
CREATE PROCEDURE myTest
AS
print 'hello'
RAISERROR('error', 16, 1, 11, 'Take care')
GO
try
{
var s = myDbContext.Database.ExecuteSqlCommand("myTest44");
Console.WriteLine(s);
}
catch (Exception ex)
{
Console.WriteLine(ex);
throw;
}
关于c# - Database.ExecuteSqlCommand - 捕获 SQL 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354237/
我试图传入一个 SQL 字符串来删除一些记录。我正在使用 DbContext.Database.ExecuteSqlCommand 函数,但是除了 SQL 字符串之外,它还需要一个以下形式的参数列表:
我正在使用 MySql DB 并尝试在那里创建一个用户。密码是一个哈希值。当我使用 Context.Useraccount.add(User) 和 Context.SaveChanges() 添加到数
修改来自 this question 的答案稍微,假设我运行这段代码: public int SaveOrUpdate(MyEntity entity) { var sql = @"MERG
这个问题在这里已经有了答案: Why does my raw query to count rows always returns -1? (2 个答案) 关闭 7 年前。 private int
这个问题在这里已经有了答案: Execute Insert command and return inserted Id in Sql (8 个答案) 关闭 5 年前。 我想在执行此命令后检索插入的
我正在尝试使用 context.Database.ExecuteSqlCommand 从 EF 调用存储过程因为我的参数之一是数据表。 以下是程序的参数: ALTER PROCEDURE [mySch
我在 ASP.NET MVC3 应用程序中使用 Entity Framework ,并尝试使用以下代码: var token = ""; this.Database.ExecuteSqlCommand
我正在继承一个具有这个公共(public)虚方法的类 public virtual int ExecuteSqlCommand(string query, params SqlParameter[]
我读到在使用最小起订量时不能模拟非虚函数。我还读到现在应该可以做到这一点。是真的吗?如果是这样,那么我想模拟以下查询: DatabaseContext.Database.ExecuteSqlComma
我有一个 EF 代码优先模型。它工作正常,但是当我尝试使用 Database.ExecuteSqlCommand 运行存储过程时,它总是返回 -1,无论我在存储过程中输入什么结果总是 -1 我的存储过
我正在将 EF 6 与 Azure Sql 数据库结合使用。根据 Microsoft 的说法,不支持用户发起的交易(引用:https://msdn.microsoft.com/en-us/data/d
ASP.NET Core 是唯一实现的平台吗 Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.ExecuteSqlCo
====更正==== 从 Database.ExecuteSqlCommand 引发 SQL 异常。我期待一个异常(exception),但实际上并没有从我的存储过程中得到任何改变。在调试中,我看到了
我有以下脚本来重建索引: DECLARE @TableName VARCHAR(255) DECLARE @sql NVARCHAR(500) DECLARE @fillfactor INT SET
我在尝试传递 int 类型数组的参数时遇到问题。到目前为止我所做的事情如下,但两种方法都失败了。 方法1(失败): int[] CategoryArray; CategoryArray = new i
DbContext.Database.ExecuteSqlCommand(sql, parameters) 我正在使用 Entity Framework 的上述方法来执行 SP,它采用表值参数并执行一
我正在使用数据库中的 Entity Framework Code First。我正在尝试运行现有的未映射存储过程,使用 dbcontext.Database.ExecuteSqlCommand,根据从
因此,我在我的 MVC 4 应用程序中运行了一个基本的更新语句。我这样调用它(SQL Server 2008 R2,Entity Framework 5.0): var requestData = r
我有一些关于如何从我的数据库访问数据的建议: var allMyIds = context.Database.ExecuteSqlCommand("select id from AspNetU
有没有办法让 ExecuteSqlCommand 与新的未提交实体一起工作。 using (var context = new EarthContext()) {
我是一名优秀的程序员,十分优秀!