Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
Merhaba
Bir CheckBoxList'im var diyelim. S_TEKLIF tablomun içinde HESAP_NO (Primary Key) ve MUS_K_ISIM sütunları var. CheckBoxList'te C'ler listeleniyor.
Programatik olarak tanımladığım SQL'im var botunun click event'inde.
ve ben buraya yine programatik olarak CheckBoxList'te seçtiğim MUS_K_ISIM'lerin HESAP_NO'larını SQL'de IN kullanarak başka bir gridview'a aktarmak istiyorum.
ArrayList values = new ArrayList();
for (int i = 0; i < CheckBoxList1.Items.Count; i++ )
{
if (CheckBoxList1.Items[i].Selected)
{
values.Add(CheckBoxList1.Items[i].Value);
}
}
strQuery = strQuery + " AND A.HESAP_NO IN (SELECT A.HESAP_NO FROM S_TEKLIF A WHERE A.MUS_K_ISIM IN (" + values + "))";
SQL'imi tanımladıktan sonra şöyle deniyorum fakat SQL IN kullanarak values dizisini bir türlü yerleştiremedim.
Bunun nasıl yapıldığını bilen var mı?
www.sonergonul.net
|
|
Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
Add watch dediğimde strQuery'nin sonu
A.HESAP_NO IN (SELECT A.HESAP_NO FROM S_TEKLIF A WHERE A.MUS_K_ISIM IN (System.Collections.ArrayList))
olarak görünüyor.
www.sonergonul.net
|
|
Yazar |
|
memetonder
BeSnI
Kayıt: 17.05.2007 |
|
Çünkü sen direk ArrayList'in kendisini eklemişsin sorguya.
O ArrayList içine doldurdugun değerleri eklemen gerekiyor.
...
|
|
Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
ArrayList'in içi ("Ahmet", "Mehmet", "Ali", "Veli") şeklinde olduğundan IN clause'ın içinde bu şekilde kullanılmıyor mu zaten?
Yani burada;
SELECT A.HESAP_NO FROM S_TEKLIF A WHERE A.MUS_K_ISIM IN ("Ahmet", "Mehmet", "Ali", "Veli") olmaz mı?
www.sonergonul.net
|
|
Yazar |
|
memetonder
BeSnI
Kayıt: 17.05.2007 |
|
Yok işte senin oraya eklediğin şey ArrayList'in içeriği değil direk kendisi. Onun içindeki value'ları eklemen lazım. kaldı ki arrayList kullanmana da gerek yok, direk bi String işini görür sanki.
for içinde arrayList'e ekleyeceğine. String'e append etsen değerleri,sonra o stringi query içine koyarsan istediğin şekilde olmus olur sanki.
...
|
|
Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
stringe eklerim de şöyle olur ama o zaman.
string abc = "Ali, Veli, 49, 50"
gibi ama IN şu şekilde oluyor ya IN ("Ali", "Veli", "49", "50")
ben IN (+ abc +) diyemem o zaman. Değil mi?
www.sonergonul.net
|
|
Yazar |
|
memetonder
BeSnI
Kayıt: 17.05.2007 |
|
String values="";
for (int i = 0; i < CheckBoxList1.Items.Count; i++ )
{
if (CheckBoxList1.Items[i].Selected)
{
values=values+"'" +CheckBoxList1.Items[i].Value+"',";
}
}
values.TrimEnd(",");
Bunu yaptıktan sonra
values=" 'Ali','Ahmet','Ayşe' " şeklinde bir string elde edersin.
strQuery = strQuery + " AND A.HESAP_NO IN (SELECT A.HESAP_NO FROM S_TEKLIF A WHERE A.MUS_K_ISIM IN (" + values + "))";
...
|
|
Yazar |
|
wardom
Kirklareli
admin
Kayıt: 12.11.2006 |
|
memetonder yazdi |
String values="";
for (int i = 0; i < CheckBoxList1.Items.Count; i++ )
{
if (CheckBoxList1.Items[i].Selected)
{
values=values+"'" +CheckBoxList1.Items[i].Value+"',";
}
}
values.TrimEnd(",");
Bunu yaptıktan sonra
values=" 'Ali','Ahmet','Ayşe' " şeklinde bir string elde edersin.
strQuery = strQuery + " AND A.HESAP_NO IN (SELECT A.HESAP_NO FROM S_TEKLIF A WHERE A.MUS_K_ISIM IN (" + values + "))";
|
aynen benim de şimdi geldi aklıma. şu "", '' ve "''" gibi noktalama hatalarını da hiç sevmiyorum.
Çok saol kanka
www.sonergonul.net
|
|
Yazar |
|
memetonder
BeSnI
Kayıt: 17.05.2007 |
|
Rica ederim,
Kolay gelsin
...
|
|
Yazar |
|
greenrock
istanbul
Kayıt: 18.08.2008 |
|
ArrayList in içinden object olarak döndüğü için hata veriyor olabilir.
List<string> generic kullanırsan sorun hallolur gibi.
Yada arkadaşın dediği gibi StringBuilder sınıfını kullanarak bir string oluşturarakda verebilirsin..
|
|
Yazar |
|
barboonia
cennet kösesi
Kayıt: 09.10.2009 |
|
memetonder yazdi |
values+"'" +CheckBoxList1.Items[i].Value+"',";
|
yerine string.Format("{0}{1}",s,z); şeklinde yaparsanız daha iyi olur.
çünkü; a=a+b+c+d; denidiğinde c+d yi bi stringe atıyor sonra bu sitringe b yi birleştiriyor ki bunuda ayrı bir stringe tutuyor. sonra bu stringle a yı birleştiriyor. en sonunda bu stringi a ya atıyor.
kaç tane string oldu.
ya da System.Text.StringBuilder sınıfını kullanabilirsiniz.
süphesiz ki Antalya dünyanin en güzel sehridir...
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | |