次のコード(まったく同じ)は、別のプロジェクトで正常に実行されています。
private void AddComboBoxCells()
{
DataGridViewComboBoxCell dgvcell;
_query = "select ProductName from Product";
com = new SqlCommand(_query, con);
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
dgvcell = new DataGridViewComboBoxCell();
dataGridView1[1, i] = dgvcell;
myrdr = com.ExecuteReader();
while (myrdr.Read())
{
dgvcell.Items.Add(myrdr.GetValue(0));
}
myrdr.Close();
}
}
このプロジェクトでは現在、これと同じコードを実行しようとしていますが、実行時に次のエラーが発生します。
私がしているのは、レコード、つまり製品名を取得して、datagridviewcomboboxcellの2番目の列に入力することです。
編集
private void btnAdd_Click(object sender, EventArgs e)
{
DataRow dtr = tblOrders.NewRow();
tblOrders.Rows.Add(dtr);
DataGridViewComboBoxCell dgvcell;
_query = "select * from Product";
com = new SqlCommand(_query, con);
dgvcell = new DataGridViewComboBoxCell();
dataGridView1[1, dataGridView1 .Rows.Count -2 ] = dgvcell;
myrdr = com.ExecuteReader();
while (myrdr.Read())
{
dgvcell.Items.Add(myrdr[0]);
}
myrdr.Close();
}
この[追加]ボタンコードは機能するため、受信するデータは確実に有効です。手伝ってください。