【问题标题】:'An error occurred while executing the command definition. See the inner exception for details.''执行命令定义时发生错误。有关详细信息,请参阅内部异常。
【发布时间】:2020-03-30 17:57:21
【问题描述】:

我收到此错误:

执行命令定义时出错。详情见内部异常

SqlException:过程或函数 SP_WEB_MS3DailyReport_DailyEquipmentDeviation_SelectByDate 指定的参数过多。

我的代码:

ALTER PROCEDURE [dbo].[SP_WEB_MS3DailyReport_NonBuilDeviation_SelectByDate]
    (@FromDate datetime,
     @EndDate datetime)
AS
BEGIN
    SELECT
        JobHead,
        ISNULL(MeasurementPlanned, 0) AS MeasurementPlanned,
        CASE
           WHEN Deviation IS NULL THEN CONVERT(Numeric(18, 2), 0)
           ELSE CONVERT(Numeric(18, 2), MeasurementReport)
        END AS MeasurementReport,
        CASE
           WHEN MeasurementReport IS NULL THEN -(MeasurementPlanned)
           ELSE Deviation
        END AS Deviation,
        CASE
           WHEN MeasurementPlanned IS NULL AND Deviation > 0 THEN 'btn-info'
           WHEN Deviation = 0 THEN 'btn-primary'
           WHEN Deviation > 0 THEN 'btn-success'
           WHEN Deviation < 0 THEN 'btn-danger' 
           WHEN Deviation IS NULL THEN 'btn-warning'
        END AS Indicater,
        ProjectSiteName, ProjectSiteID
    FROM
        (SELECT
             DailyNonBuildReviewDeviation.[JobHead],
             CONVERT(Numeric(18, 2), NextDayNonBuildPlan.Measurement) AS MeasurementPlanned,
             CONVERT(Numeric(18, 2), DailyNonBuildReport.Measurement) AS MeasurementReport,
             CONVERT(Numeric(18, 2), DailyNonBuildReviewDeviation.Measurement) AS Deviation,
             ProjectSiteName, DailyNonBuildReviewDeviation.ProjectSiteID
         FROM
             DailyNonBuildReviewDeviation
         LEFT JOIN
             NextDayNonBuildPlan ON DailyNonBuildReviewDeviation.NextDayNonBuildPlanID = NextDayNonBuildPlan.NextDayNonBuildPlanID
         LEFT JOIN 
             [DailyNonBuildReport] ON DailyNonBuildReviewDeviation.DailyNonBuildReportID = DailyNonBuildReport.DailyNonBuildReportID
         INNER JOIN 
             ProjectSites ON ProjectSites.ProjectSiteID = DailyNonBuildReviewDeviation.ProjectSiteID
         WHERE 
             [DayOFDeviation] BETWEEN CONVERT(date, @FromDate) AND CONVERT(date, @EndDate))AA
    GROUP BY 
        ProjectSiteName, ProjectSiteID, JobHead, 
        MeasurementPlanned, MeasurementReport, Deviation
END

【问题讨论】:

  • 将代码发布到不同的存储过程没有帮助。但这里的问题在于您的应用程序代码 - 您没有发布。
  • 旁注:您应该为您的存储过程使用sp_ 前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免 sp_ 并使用其他东西作为前缀 - 或者根本不使用前缀!
  • 这与 C# 和实体框架有什么关系?
  • 从此代码调用此存储过程 }`
  • edit您的问题,而不是在 cmets 中发布代码。另外,请确保代码不包含黑框(如Obj.SP_WEB_MS3DailyReport_NonBuilDeviation_SelectByDate)。

标签: c# sql-server entity-framework-6


【解决方案1】:

“指定的参数太多。”。您正在从应用程序代码调用存储过程,该存储过程具有比存储过程中定义的参数多的参数。确保参数匹配。如果您需要其他帮助,请发布您的应用程序代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    相关资源
    最近更新 更多