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