C# &引用;程序需要未提供的参数";我确实提供了

C# &引用;程序需要未提供的参数";我确实提供了,c#,sql,C#,Sql,当试图通过存储过程更新数据库中的一行时,我遇到了这个错误 过程或函数“sp_A_Update”需要未提供的参数“@Misc” 但我向其提供了以下信息: command.Parameters.AddWithValue("@Misc", inspection.Misc); 这是我的全部代码,并删除了其他参数以缩短代码 using (SqlCommand command = new SqlCommand("sp_Agent_Inspection_Update", new SqlConnection

当试图通过存储过程更新数据库中的一行时,我遇到了这个错误

过程或函数“sp_A_Update”需要未提供的参数“@Misc”

但我向其提供了以下信息:

command.Parameters.AddWithValue("@Misc", inspection.Misc);
这是我的全部代码,并删除了其他参数以缩短代码

using (SqlCommand command = new SqlCommand("sp_Agent_Inspection_Update", new SqlConnection (Configuration.ConnectionString)))
{
    command.CommandType = CommandType.StoredProcedure;

    PropertyInfo[] propertyInfo = inspection.GetType().GetProperties();

    command.Parameters.AddWithValue("@Misc", inspection.Misc);
    (lots of other params here...)
    command.Parameters.AddWithValue("@RepairNotes", inspection.RepairNotes);

    // OPEN CONNECTION
    command.Connection.Open();

    // EXECUTE QUERY
    int rowsAffected =  command.ExecuteNonQuery();

    command.Connection.Close();
    return Boolean.Parse(rowsAffected.ToString());
}

有人有什么想法吗?

除了关于调用的存储过程的名称的明显错误之外

识别和解决此问题的最简单方法是运行SQL 剖析器。在执行代码时进行跟踪,看看是什么 将您的消息传递到SQL,您将看到它所期望的结果


错误显示为“sp\U A\U更新”,但代码显示为“sp\U代理检查\U更新”。您确定调试的代码正确吗?我看不到您在任何地方定义
inspection
。可能是我对C#的不了解,但也许你需要定义它?你能发布至少一部分存储过程吗?我假设sp_Agent_Inspection_Update中的SQL执行sp_A_Update,没有将参数@Misc传递给它。我似乎记得您需要确保在代码中添加参数的顺序与它们在SQL存储过程定义中出现的顺序相同。