0

您好先生,我有一个问题,我正在像这样将我的数据绑定到 datagridview

 dataGridView1.DataSource = dt1;

现在基于 datagridview 中的一列,例如,我不向 datagridview 添加任何列 在此处输入图像描述

这是绑定数据源后绑定列到动态列的编码

for (int j = 0; j < i; j++)
 {
if (j >= (dataGridView1.Columns.Count - 10))
{
  DataGridViewColumn col = new DataGridViewTextBoxColumn();
 col.DataPropertyName = "";
 col.HeaderText = j.ToString();
 col.Name = j.ToString();
   dataGridView1.Columns.Add(col);
  }
 }

所以现在我真正的问题现在从数据库开始我必须为这个动态列绑定值所以代码看起来像

foreach (DataGridViewRow dgvr in this.dataGridView1.Rows)
                    {
                        foreach (DataGridViewColumn dgvc in this.dataGridView1.Columns)
                        {
                            string query3 = "select pcs from purchase_sr_details where purchase_details_id='" + dataGridView1.Rows[dgvr.Index].Cells[1].Value + "'";


                            if (dgvc.Index > 8)
                            {
                                DataTable dt2 = connection.getexecuted(query3);
                                if (dt2.Rows.Count > 0)
                                {

                                    for (int i = 0; i < dt2.Rows.Count; i++)
                                    {
                                        dataGridView1.Rows[dgvr.Index].Cells[""+i+""].Value = dt2.Rows[i]["pcs"].ToString();
                                    }


                                }


                            }


                        }
                    }

一切正常,但我无法将值检索到列中没有显示任何检索到的动态列生成但值未绑定到该列这非常困惑我在这一列中被困 2 天

4

1 回答 1

1

我认为您的问题是您正在使用绑定和非绑定的混合。如果绑定到 datagridview,则不能直接更改单元格。你有两个选择:

  1. 更改您的原始查询,以便您也获得动态列。让 sql 完成工作,而不是您的代码。这就是我会尝试做的。
  2. 如果这不可能,您需要获取网格绑定到的数据表,将列添加到其中(即 DataColumns),然后重新绑定到新的数据表。
于 2013-10-19T19:17:29.693 回答