不使用datasource,如何用循环给datagridview的单元格依次填值?

July_Star 2017-11-10 09:50:11

想把数据库中的数据依次填入上面的DataGridView中,现在DataGridViewTextBoxColumn类型的列上的单元格填值没有问题,但是DataGridViewComboBoxColumn类型的列上的单元格填值时会报错如下:

由于我不仅仅是要用这个DataGridView显示数据,还要能让用户在显示的数据后面添加新的行,新的记录,所以前四列我想保持使用DataGridViewComboBoxColumn类型,求大神们帮帮忙,其实我就是想知道要怎么才能给DataGridViewComboBoxColumn类型的列上的单元格的value赋值

PS:我自己用的代码如下:
DataSet ds_e_p = DBHelper.Query(sqlstr_e_p);
if (ds_e_p.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds_e_p.Tables[0].Rows.Count; i++)
{
this.dataGridView1.Rows.Add();
for (int j = 0; j < 4; j++)
{
if (ds_e_p.Tables[0].Rows[i][j] != null)
{
MessageBox.Show(ds_e_p.Tables[0].Rows[i][j].ToString().Trim());
this.dataGridView1.Rows[i].Cells[j].Value = ds_e_p.Tables[0].Rows[i][j].ToString().Trim();
MessageBox.Show(this.dataGridView1.Rows[i].Cells[j].ToString());/*先弹出对话框:DataGridViewComboBoxCell值无效;再弹出对话框:DataGridViewComboBoxCell{ColumnIndex=0,RowIndex=0}*/
}
}
for (int j = 4; j < ds_e_p.Tables[0].Columns.Count; j++)
{
if (ds_e_p.Tables[0].Rows[i][j] != null)
{
MessageBox.Show(ds_e_p.Tables[0].Rows[i][j].ToString().Trim());
this.dataGridView1.Rows[i].Cells[j].Value = ds_e_p.Tables[0].Rows[i][j].ToString().Trim();
MessageBox.Show(this.dataGridView1.Rows[i].Cells[j].ToString());
}
}
}
}
...全文
145 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧