Я создаю поисковую систему для моей страницы asp. Есть 15 вариантов фильтрации, таких как Цена, Дата, Имя и т. Д.
Кроме того, использование параметров фильтрации не является обязательным. Если параметры фильтрации оставлены пустыми, поиск будет выполнен.
Я нашел решение, используя if и string.
string sorgu = "";
dbcommand cmd = CommandClassım.YeniCommand();
sorgu += "Select * From Urunler Where ";
if(UrunAdi.Text != string.Empty)
{
sorgu += "UrunAdi = @UrunAdi";
dbparameters prm = cmd.createparameter();
prm.Parametername = "@UrunAdi";
prm.Value = UrunAdi.Text;
prm.DbType = DbType.String;
cmd.Parameters.Add(prm);
}
cmd.CommandText = sorgu;
он запускает верхний код без проблем. Однако я хочу использовать параметр для фильтрации динамических данных.
Таким образом, пользователь выбирает эти категории через флажок внутри поисковой системы.
Когда я пытаюсь запустить приведенный ниже код, я получаю следующую ошибку.
Must declare the scalar variable "@cat0".
Код:
string sorgu = "";
DbCommand cmd = CommandClassım.YeniCommand();
sorgu += "Select * From Urunler Where ";
DbParameter prm = cmd.CreateParameter;
for(int i = 0; i < Category.Length; i++)
{
sorgu += "Kategori = @cat" + i.ToString();
prm.ParameterName = "@cat" + i.ToString();
prm.Value = Category.Value;
prm.DbType = DbType.String;
cmd.Parameters.Add(prm);
}
cmd.CommandText = sorgu;