Hallo ich möchte Daten aus der Datenbank in Gridview abrufen. Ich verwende Benutzerdefinierte Grid Hier ist die C# -CodeZeilen können in Gridview nicht programmatisch hinzugefügt werden. Index Fehler
try
{
int i=0;
MySqlCommand cmd = new MySqlCommand("select accounts,credit,debit,sum(credit) as c,sum(debit) as d from tbl_open_balance", con);
dr=cmd.ExecuteReader();
while(dr.Read())
{
dataGridView1.Rows[i].Cells[0].Value=dr["accounts"].ToString();
dataGridView1.Rows[i].Cells[1].Value = dr["credit"].ToString();
dataGridView1.Rows[i].Cells[2].Value = dr["debit"].ToString();
dataGridView1.Rows.Add();
i++;
}
dataGridView1.BorderStyle = BorderStyle.None;
dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(238,239,249);
dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.DarkTurquoise;
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.WhiteSmoke;
dataGridView1.BackgroundColor = Color.White;
dataGridView1.EnableHeadersVisualStyles = false;
dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;
dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(20, 25, 72);
dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
dr.Close();
}
catch (Exception ex)
{
dr.Close();
}
ich den Fehler erhielt Index außerhalb des zulässigen Bereichs war. Muss nicht negativ und kleiner als die Größe der Sammlung sein. Parametername: Index
Wahrscheinlich weil 'int i = 1 '- Indizes in der Programmierung beginnen, von 0. Aber besser ist immer noch für jeden Datensatz in dem' rd' eine neue Zeile hinzufügen, und nicht eine bevölkern. Was, wenn DB jetzt mehr Aufzeichnungen zurückgibt? ... Dann wieder Ausnahme –
Ich versuchte, aber ich erhielt den gleichen Fehler –
haben Sie versucht, dataGridView1.Rows.Add() zu verschieben; als erste Aussage in while-Schleife ... – Khan