1. ホーム
  2. c#

[解決済み] インデックスが範囲外であった。負でなく、コレクションのパラメータ name:index のサイズより小さくなければなりません。

2022-01-28 14:19:30

質問

私はdatagridviewに1行ずつデータを追加しようとしていますここに私のコードがあり、それは言う。

インデックスが範囲外です。負でなく、コレクションのサイズより小さくなければなりません。 パラメータ名:index"。

これはどういうことでしょうか?私のコードに何か問題があるのでしょうか?

String Sqlstr2 = "select ItemName from Item where ItemID = '" + tbItemID.Text + "'";
db.DataRead(Sqlstr2);
string ItemName = db.dr["ItemName"].ToString(); 

DataGridView dataGridView1 = new DataGridView();

dataGridView1.Columns[0].Name = "ItemID";
dataGridView1.Columns[1].Name = "ItemName";
dataGridView1.Columns[2].Name = "Qty";
dataGridView1.Columns[3].Name = "UnitPrice";
dataGridView1.Columns[4].Name = "Amount";

string firstColum = tbItemID.Text;
string secondColum = ItemName;
string thirdColum = tbQuantity.Text;
string fourthColum = Convert.ToString(UnitPrice);
string fifthColum = Convert.ToString(sum);

string[] row = new string[]{ firstColum, secondColum, thirdColum, fourthColum, fifthColum };
dataGridView1.Rows.Add(row);

解決方法は?

にカラムを追加していない。 DataGridView

DataGridView dataGridView1 = new DataGridView();//Create new grid

dataGridView1.Columns[0].Name = "ItemID";// refer to column which is not there 

なぜ例外が発生するのか、おわかりいただけましたか?

カラムを使用する前にこの行を追加して、エラーを修正します。

dataGridView1.ColumnCount = 5;