-
Üyelik
26.01.2017
-
Yaş/Cinsiyet
26 / E
-
Meslek
Computer Programming
-
Konum
İstanbul Avrupa
-
Ad Soyad
O** Ö**
-
Mesajlar
223
-
Beğeniler
78 / 37
-
Ticaret
0, (%0)
Hayırlı geceler
bir masaüstü uygulaması geliştirmeye çalışıyorum
veritabanı işlemleri yapıyorum bu uygulamada ancak combobox'a veritabanından çektiğim veriyi seçince System.IndexOutOfRangeException: 'Dizin, dizi sınırlarının dışındaydı.' hatası veriyor
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Items.Clear();
comboboxindex = comboBox1.SelectedIndex;
baglan.Open();
SqlCommand komut = new SqlCommand("Select * From altKategori Where kategori_id="+kategori_index[comboboxindex], baglan);
SqlDataReader oku = komut.ExecuteReader();
while (oku.Read())
{
comboBox2.Items.Add(oku["kategoriAdi"].ToString());
altkategoriler.Add(oku["id"].ToString());
}
baglan.Close();
}
kodun tamamı bu hata verdiği kısım ise
SqlCommand komut = new SqlCommand("Select * From altKategori Where kategori_id="+kategori_index[comboboxindex], baglan);
burası çözümü nedir?
-
Üyelik
26.01.2017
-
Yaş/Cinsiyet
26 / E
-
Meslek
Computer Programming
-
Konum
İstanbul Avrupa
-
Ad Soyad
O** Ö**
-
Mesajlar
223
-
Beğeniler
78 / 37
-
Ticaret
0, (%0)
Ek olarak dizi 1024 verilik bir alana sahip benim veritabanından çektiğim veri sayısı 200'ü geçmiyor.
mjr2018
Kimlik Onayı Bekliyor
Banlı Kullanıcı
-
Üyelik
18.02.2018
-
Yaş/Cinsiyet
33 / E
-
Meslek
yazılımcı
-
Konum
İstanbul Anadolu
-
Ad Soyad
M** T**
-
Mesajlar
93
-
Beğeniler
1 / 33
-
Ticaret
0, (%0)
okudaki boyutu bulup, for döngüsünde max değer olarak yaz
1 kişi bu mesajı beğendi.
ontedi
www.ontedi.com
Kullanıcı
-
Üyelik
03.10.2013
-
Yaş/Cinsiyet
44 / E
-
Meslek
Yazılım Uzmanı, Matematikçi
-
Konum
Ankara
-
Ad Soyad
S** T**
-
Mesajlar
1119
-
Beğeniler
325 / 324
-
Ticaret
2, (%100)
comboboxindex = comboBox1.SelectedIndex;
burada, olmayan dizi elemanı geliyor olabilir.
1 kişi bu mesajı beğendi.
www.ontedi.com
www.cizgi.site
-
Üyelik
19.04.2015
-
Yaş/Cinsiyet
26 / E
-
Meslek
Developer
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** E**
-
Mesajlar
821
-
Beğeniler
1 / 302
-
Ticaret
1, (%100)
comboBox1.Items.Clear(); // bu kısımda comboBox1 içeriği temizleniyor
comboboxindex = comboBox1.SelectedIndex; // bu kısımda 0 içeriğe sahip comboBox1'dan seçili index'i istiyorsun
120 öğesi olan bir listeyi temizleyip 100. öğeye erişmek veya 120 öğesi olupta 121. öğeye erişmen dizi sınırlarının dışındaydı şeklinde bir hata fırlarması normal.
Üstelik Clear(); dediğin için öğe sayısı 0 ve SelectedIndex varsayılan olarak -1 olduğu için (çünük liste boşsa default selected index -1'dir) dizi dışından bir erişim oluyor.
comboBox1.Items.Clear();
Temizleme işini ya bir satır aşağı kaydıracaksın ya da yapmayacaksın. Çünkü comboBox2 adından alt kategorileri listelediğin ikinci bir nesne var, temizlenmesi gereken bence comboBox2.
1 kişi bu mesajı beğendi.
no time for caution