调用API中的函数检索加载资源失败:服务器响应状态为500()。

问题描述 投票:0回答:1

我在mvc框架中使用一个存储过程的代码。我有一个字段WorkOverDate来选择一个日期并将其保存在Unit表中。保存后,我想把这个日期添加到另一个叫WorkOver的表中。问题来了,当我试图调用api中的存储过程的函数,更新Unit中的信息时,我得到了这样的结果:加载资源失败:服务器响应状态为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(); }
sql-server api model-view-controller procedure
1个回答
0
投票

问题是,我不得不添加在存储过程中。

Where WorkOverDate IS NOT NULL 

作为一个空参数不能被添加到一个不可空的列。现在它的工作。

© www.soinside.com 2019 - 2024. All rights reserved.