【问题标题】:An SqlParameter with ParameterName 'server_name' is not contained by this SqlParameterCollection此 SqlParameterCollection 不包含具有 ParameterName 'server_name' 的 SqlParameter
【发布时间】:2020-05-26 10:37:01
【问题描述】:

我正在尝试使用如下存储过程更新 event_alerts 表:

GO
ALTER procedure [dbo].[servermatch_servers]
@server_name varchar(25)
as
update event_alerts 
set event_alerts.status_alert = (case when master_serverlist.Server_list is null then '0' else '1' 
end)
from event_alerts inner join master_serverlist  on master_serverlist.Server_list = 
event_alerts.server_name where server_name = @server_name

c# 代码:

using (SqlCommand command3 = new SqlCommand("servermatch_servers", conn1))
{
command3.CommandType = CommandType.StoredProcedure;
command3.Parameters.AddWithValue("@server_name", server);
command3.Parameters[@"server_name"].Direction = ParameterDirection.Input;
command3.ExecuteNonQuery();
}

服务器的值是从字符串中提取的,它是 server_name 的值 任何帮助将非常感激。提前致谢

【问题讨论】:

  • 这是一个错字吗,因为它应该是command3.Parameters["@server_name"]
  • server 是 server_name 的字符串值
  • 您使用的是哪个 dbms? (该代码是特定于产品的。)
  • sql 用于此

标签: c# sql stored-procedures


【解决方案1】:

我认为下面一行是罪魁祸首-

command3.Parameters[@"server_name"].Direction = ParameterDirection.Input;

试试改成

command3.Parameters["@server_name"].Direction = ParameterDirection.Input;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多