En iyi yanıtlayıcılar
Dizin aralık dışındaydı

Soru
-
System.ArgumentOutOfRangeException: 'Dizin aralık dışındaydı. Negatif bir değer olmamalı ve koleksiyonun boyutundan daha küçük olmalıdır.
Parametre adı: index'
hatası alıyorum
private int adetHesapla(int row)
{
if (Convert.ToInt32(dataGridView1.Rows[row].Cells[4].Value) > 0) Satırda hata gösteriyor.
return Convert.ToInt32(dataGridView1.Rows[row].Cells[4].Value) + 1;
else
return 1;
}id 1 olanı datagrid e çekince sıkıntı olmuyor id si 2 veya daha üst olan verilerde üüstteki kod satırında hata veriyor. Yani veritabanındaki tablo daki en üst veriyi çekince sıkıntı çıkmıyor.Diğerlerini ilk de çekmeye çalıştığımda alıyorum bu hatayı çözümü bilen varsa aydınlatırsa sevinirim.
Yanıtlar
-
Cozumunu mesajda yazıyor zaten. Bir dizine vereceğiniz deger 0 ile o dizinin uzunluğu-1 araliginda olmalı. Yani tek elemanli bir diziniz var ise, dizi[0] kullanabileceginiz tek deger, 5 elemanli bir dizide 0,1,2,3,4 kullanabilirsiniz.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
- Düzenleyen CetinBasozEditor 17 Şubat 2020 Pazartesi 14:48
- Yanıt Olarak İşaretleyen CetinBasozEditor 22 Şubat 2020 Cumartesi 14:57
Tüm Yanıtlar
-
Cozumunu mesajda yazıyor zaten. Bir dizine vereceğiniz deger 0 ile o dizinin uzunluğu-1 araliginda olmalı. Yani tek elemanli bir diziniz var ise, dizi[0] kullanabileceginiz tek deger, 5 elemanli bir dizide 0,1,2,3,4 kullanabilirsiniz.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
- Düzenleyen CetinBasozEditor 17 Şubat 2020 Pazartesi 14:48
- Yanıt Olarak İşaretleyen CetinBasozEditor 22 Şubat 2020 Cumartesi 14:57
-
kodu söyle açmak istiyrum
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
for (int i = 0; i < dataTable.Rows.Count-1; i++)
{
if (textBox1.Text == dataTable.Rows[i][1].ToString())
{
if (adetHesapla(i) != 1)
{
dataGridView1.Rows[i].Cells[4].Value = adetHesapla(i);
}
else
{
dataGridView1.Rows.Add(dataTable.Rows[i][0], dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], adetHesapla(i));
}
fiyatHesapla();
textBox1.Clear();
}
}
}ben istiyrum ki veritabanındaki tablo da 50. veriyinin değeri textbox'daki no su ile aynı olduğunda onu çeksin datagridview'e ama sadece ilk baştaki veriyi çekiyor diğerlerinde hata veriyor.
-
Valla o sizin kodunuz, tamamı ve dataGridView'in kaynağı sizde. Hata verdiği satırda:
dataGridView1.Rows[i].Cells[4]....
yazıyor. Biz bilemeyiz ki dataGridView'de i-1 kadar satir ya da 5 sütun var mıdır yok mudur. Donguyu DataTable ile başlatıp, içerisinde DataGridView kullanmissiniz. Debuggerda degerleri kontrol ediniz.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.