0
我正在爲我的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;
@的所有做爲計時首先,感謝你提到你的interesting.As,我不能it.So,我得到了同樣的錯誤。 – Selo
@Selo - 它會給你什麼錯誤?另外,如果你選擇了多個類別,你的命令字符串'sorgu'很可能不起作用,因爲它看起來像這樣:'Select * From Urnler where Kategori = @ cat0Kategori = @ cat1Kategori = @ cat3'等等。 – Tim
@ Tim-正如你所說,我正在使用查詢。但是,我得到了同樣的錯誤。另外,我收到「cmd.parameters.add(prm);」中的錯誤。線。 – Selo