İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# CheckedListBox'a SQL'den Veri Çekme

UgurOnline22.11.20107 cevap8.208 görüntüleme
2008'den beri159 mesaj
#1
arkadaşlar aşağıdaki kodla listboxa sql üzerinden verileri çekebiliyorum. benim istediğim checkedlistbox'ta tüm seçenekler gösterilsin ama sadece kayıtların tutulduğu tablodakiler seçili olsun. çok kolay bişi sanırım ama beceremedim

listboxa çekerken kullandığım kod:

SqlCommand com = new SqlCommand(@"SELECT * FROM SeansIlaclar si INNER JOIN Ilaclar i ON si.IlacID = i.IlacID WHERE si.SeansID=" + ana.Seanslar_SeansID(), con);
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds);
            listBox1.DataSource = ds.Tables[0];
            listBox1.DisplayMember = "IlacAdi";
            listBox1.ValueMember = "IlacID";
Cevaplar
2008'den beri6.607 mesaj
#2
SeansIlaclar tablosunda olan verilerin işaretli olmasını mı istiyorsun?
UgurOnline Konuyu açan
2008'den beri159 mesaj
#3
evet
Ilaclar tablosunun listelenmesini, SeansIlaclar tablosundakilerinde seçili olmasını istiyorum
2008'den beri6.607 mesaj
#4
O zaman ilk başta ilaçlar tablosu ile doldurman gerekir checkedlistboxu:

string sql = "Select ilacid, ad from Ilaclar;";
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(sql, con);
con.Open();
adp.Fill(dt);
con.Close();

checkedListBox1.DataSource = dt;
checkedListBox1.DisplayMember = "ad";
checkedListBox1.ValueMember = "ilacid";  


Daha sonra sadece istediğin ilaçları seçmen gerekiyor:


string sql = "Select ilacid from SeansIlaclar;";
DataTable dt2 = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(sql, con);
con.Open();
adp.Fill(dt2);
con.Close();

for(int i=0; i<dt2.Rows.Count; i++)
{
    foreach(DataRowView row in checkedListBox1.Items)
    {
        if(row["ilacid"].ToString() == dt2.Rows[i][0].ToString())
            checkedListBox1.SetItemChecked(i, true);
    }
}
UgurOnline Konuyu açan
2008'den beri159 mesaj
#5
listelerken tamam ama seçme kısmında şu hatayı verdi
List that this enumerator is bound to has been modified. An enumerator can only be used if the list does not change.
UgurOnline Konuyu açan
2008'den beri159 mesaj
#6
çözümü bilen varmı arkadaşlar dünden beri kıvranıyorum :s
2008'den beri6.607 mesaj
#7
Şu şekilde de olabilir:

string sql = "Select ilacid from SeansIlaclar;";
DataTable dt2 = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(sql, con);
con.Open();
adp.Fill(dt2);
con.Close();

for (int i = 0; i < dt2.Rows.Count; i++)
{
    for (int j = 0; j < checkedListBox1.Items.Count; j++)
    {
        if ((checkedListBox1.Items[j] as DataRowView)["ilacid"].ToString() == dt2.Rows[i][0].ToString())
            checkedListBox1.SetItemChecked(j, true);
    }
} 
UgurOnline Konuyu açan
2008'den beri159 mesaj
#8
çok saol necati where koşulunuda kullanarak hallettik
"Select IlacID from SeansIlaclar WHERE SeansID=" + ana.Seanslar_SeansID();

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.