Forum
merhaba. stores procedur kullanarak filtreleme yapmaya çalışıyorum. 3 farklı özellik tablosunu view ile birleştirdim. stored procedur da aşağıdaki kodları yazdım. tablolardan birer özellik seçtiğimde yada tek bir tablodan yada 2 tablodan birer seçenek seçtiğimde istediğim özelliklere sahip ürünün biri geliyor. ama aynı tablodan yada farklı tablolardan birden fazla özellik seçtiğimde ürünleri getirmiyor. burada nasıl bir döngü kullanmam lazım.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[urunSorgula2]
@UrunModel int,
@UrunRenk int,
@UrunMarka int
as
if(@UrunModel<1 and @UrunRenk<1 and @UrunMarka>0)
begin
select * from vw_urun where MarkaID=@UrunMarka and Durum=1
end
else if(@UrunModel<1 and @UrunMarka<1 and @UrunRenk>0)
begin
select * from vw_urun where RenkID=@UrunRenk and Durum=1
end
else if (@UrunMarka<1 and @UrunRenk<1 and @UrunModel>0)
begin
select * from vw_urun where ModelID=@UrunModel and Durum=1
end
else if(@UrunMarka<1 and @UrunRenk>0 and @UrunModel>0)
begin
select * from vw_urun where ModelID=@UrunModel and RenkID=@UrunRenk and Durum=1
end
else if(@UrunMarka>0 and @UrunRenk>0 and @UrunModel<1)
begin
select * from vw_urun where RenkID=@UrunRenk and MarkaID=@UrunMarka and Durum=1
end
else if(@UrunMarka>0 and @UrunRenk<1 and @UrunModel>0)
begin
select * from vw_urun where ModelID=@UrunModel and MarkaID=@UrunMarka and Durum=1
end
else
begin
select * from vw_urun where ModelID=@UrunModel and RenkID=@UrunRenk and MarkaID=@UrunMarka and Durum=1
end
ÜRÜNLER SAYFASINDA ÇEKTİĞİM KODLAR
lblUrun.Text = "";
int marka = 0, model = 0, renk = 0;
if (CheckBoxList1.SelectedValue != "")
marka = Convert.ToInt32(CheckBoxList1.SelectedValue);
if (CheckBoxList2.SelectedValue != "")
model = Convert.ToInt32(CheckBoxList2.SelectedValue);
if (CheckBoxList3.SelectedValue != "")
renk = Convert.ToInt32(CheckBoxList3.SelectedValue);
var urun = db.urunSorgula2(model, renk, marka);
foreach (var ur in urun)
{
lblUrun.Text += ur.UrunBaslik + " / " + ur.MarkaBaslik + " / " + ur.RenkBaslik +"<br>";
}
“db.urunSorgula2” metodunda nasıl bir kod çalıştırdığınızı bilemiyorum ama buraya odaklanmanızı öneririm. Öte yandan veri yapınızı incelemeden bir şey söylemek zor. Size tavsiyem SP içerisinde çalıştırdığınız koşulları C# tarafında taşımanızdır. Bu sayede hem debug imkanına sahip olursunuz hem de kodu basitleştirebilirsiniz.