集合中不包含SqlCommand参数
本文关键字:SqlCommand 参数 包含 集合 | 更新日期: 2023-09-27 18:08:09
我得到以下异常:
An exception of type 'System.IndexOutOfRangeException' occurred
in System.Data.dll but was not handled in user code
Additional information: An SqlParameter with ParameterName 'catStart'
is not contained by this SqlParameterCollection.
当运行此代码时:
var command = new SqlCommand();
command.Parameters.Add("@startSku", SqlDbType.VarChar);
command.Parameters.Add("@endSku", SqlDbType.VarChar);
command.Parameters.Add("@catStart", SqlDbType.VarChar);
command.Parameters.Add("@catEnd", SqlDbType.VarChar);
command.Parameters.Add("@active1", SqlDbType.VarChar);
command.Parameters.Add("@active2", SqlDbType.VarChar);
command.Parameters["@startSku"].Value =
string.IsNullOrEmpty(startSku)
? SqlHelpers.MinString
: startSku;
command.Parameters["@endSku"].Value =
string.IsNullOrEmpty(endSku)
? SqlHelpers.MaxString
: endSku;
command.Parameters[@"catStart"].Value =
string.IsNullOrEmpty(startCategory)
? SqlHelpers.MinString
: startCategory;
command.Parameters[@"catEnd"].Value =
string.IsNullOrEmpty(endCategory)
? SqlHelpers.MaxString
: endCategory;
command.Parameters[@"active1"].Value = isActive;
command.Parameters[@"active2"].Value = checkIsActive ? isActive : !isActive;
异常被抛出:
command.Parameters[@"catStart"].Value =
string.IsNullOrEmpty(startCategory)
? SqlHelpers.MinString
: startCategory;
我怎么也弄不明白为什么。我试过独立创建参数,然后添加到集合中。我尝试了一些不同的数据类型。我试着给它们重新命名。我不明白为什么这么挑剔
"@catStart"
而不是@"catStart"
,在其他地方也是
您的参数格式不正确。如,
command.Parameters[@"catStart"].Value =
应该command.Parameters["@catStart"].Value =
command.Parameters["@catEnd"].Value =
command.Parameters["@active1"]
command.Parameters["@active2"]
command.Parameters["@catStart"]
格式错误。应该是
command.Parameters["@catStart"].Value =
command.Parameters["@catEnd"].Value =
command.Parameters["@active1"]