sql-server - API 中调用函数检索加载资源失败:服务器响应状态为 500 ()
问题描述
我正在使用 mvc 框架中的存储过程编写代码。我有一个 WorkOverDate 字段来选择一个日期并将其保存在 Unit 表中。保存后,我希望将该日期添加到另一个名为 WorkOver 的表中。当我尝试使用更新单元中信息的 api 中的存储过程调用函数时出现问题,我得到以下信息:加载资源失败:服务器响应状态为 500 () 我不确定是什么在这里做。我在页面中修改的所有内容都正确保存,但存储过程不起作用。任何建议都受到高度赞赏。
我有一个 UnitRepository 文件,其中包含以下代码:
public void UpdateWorkOver()
{
using (var cmd = _db.Database.GetDbConnection().CreateCommand())
{
cmd.CommandText = "dbo.WorkOverAddDate";
cmd.CommandType = System.Data.CommandType.StoredProcedure;
bool isOpen = cmd.Connection.State == ConnectionState.Open;
if (!isOpen)
{
cmd.Connection.Open();
}
cmd.ExecuteNonQuery();
if (!isOpen)
{
cmd.Connection.Close();
}
}
}
对此的存储过程是:
CREATE PROCEDURE [dbo].[WorkOverAddDate]
AS
INSERT INTO dbo.WorkOver
(UnitID, WODate, CreatedBy, Created)
SELECT UnitID, WODate, CreatedBy, Created
FROM dbo.WorkOver
UNION
SELECT ID, WorkOverDate, UpdatedBy, Updated
FROM dbo.Unit
另外,我有一个 API,我在保存页面时使用存储过程调用函数。
//编辑
unit.Updated = DateTime.Now;
unit.UpdatedBy = _securityHelper.CurrentUserID.ToString();
_auditHelper.After = unit;
_repoUnit.Edit(unit);
if (unit.WorkOverDate != null)
{ ((UnitRepository)_repoUnit).UpdateWorkOver(); }
解决方案
问题是我必须添加存储过程:
Where WorkOverDate IS NOT NULL
因为不能将 null 参数添加到不可为 null 的列中。现在它正在工作。
推荐阅读
- python - werkzeug.routing.BuildError with Flask -- 尝试构建一个非常简单的 webapp
- php - 如何在电子商务网站的数据库中创建产品规格表
- python - TypeError:'str'对象不能解释为整数python for循环
- ruby-on-rails - RSpec - 除非从撬点调用局部变量,否则测试失败
- c# - API 响应始终为“空”
- ios - SwiftUI - 根据条件添加导航栏按钮
- typescript - 使用“ts_library”中的非“.ts”/“.tsx”文件作为依赖项
- android - 在 RecyclerView 中重复项目
- javascript - js 中的 fetch() (react hooks) - 那么我可以访问第三个数据吗?
- docker - 为什么我的绑定挂载实际上并没有绑定某些文件?