我收到以下异常:
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;
我不能为我的生活找出原因。我已经尝试独立创建参数,然后添加到集合中。我尝试了一些不同的数据类型。我尝试重命名它们。我不明白为什么这是挑剔的。
答案 0 :(得分:1)
"@catStart"
代替@"catStart"
以及其他地方。
答案 1 :(得分:0)
您的参数格式不正确。像,
command.Parameters[@"catStart"].Value =
应该是
command.Parameters["@catStart"].Value =
command.Parameters["@catEnd"].Value =
command.Parameters["@active1"]
command.Parameters["@active2"]
command.Parameters["@catStart"]
答案 2 :(得分:0)
格式不正确。它应该是
command.Parameters["@catStart"].Value =
command.Parameters["@catEnd"].Value =
command.Parameters["@active1"]