【问题标题】:How do I get my data to show in correct DataGridView column?如何让我的数据显示在正确的 DataGridView 列中?
【发布时间】:2011-08-30 16:14:56
【问题描述】:

我正在尝试使用从 Excel 导入的自定义列填充我的 DataGridView。这应该很容易,但对于我的生活,我陷入了脑锁。我应该能够选择特定的列(作品),将列标题发送到我的 excel 类以解析该列中的数据(作品),将解析的数据发送到列表(作品),然后将数据导入 datagridview通过将我的 DataSource 设置为我的列表(我正在创建列标题文本,但代码正在创建一个名为 Value 的列并将我的数据添加到其中)。这是造成问题的代码:

private void btnCreateTable_Click(object sender, EventArgs e)
    {
        List<StringValue>[] listArr = new List<StringValue>[columnCount];
        ExcelClass getData = new ExcelClass();
        tabControl1.SelectedTab = tabDataTable;
        dgv.Visible = true;
        
        DataGridViewTextBoxColumn t = new DataGridViewTextBoxColumn();

        //dgvSelectedHeaders.Columns[i].Name = selectedHeaders[i];
        for (int i = 0; i < columnCount; i++)
        {
            //dgv[i].DataSource = getData.GetDataFromExcel(headersArr[i], path);
            listArr[i] = getData.GetDataFromExcel(selectedHeaders[i], path);
            t.Name = selectedHeaders[i];
            t.HeaderText = selectedHeaders[i];
            dgv.Columns.Add(t);
            dgv.DataMember = "String";
            dgv.DataSource = listArr[i];
            for (int j = 0; j < getData.RowCount; j++)
            {
                dgv.Rows.Add();
                for (int k = 0; k < getData.RowCount; k++)
                {
                    dgv[k, j].Value = listArr[j][k].ToString();
                }
            }

        }

如果我选择多列,它会显示第一列,但在 dgv.Columns.Add(t) 行的第一列之后出现错误; ... InvalidOperationException,提供的列已经属于 DataGridView 控件...我知道这是两个问题,但我认为它们以某种方式联系在一起。

提前致谢,如果您需要更多代码,请告诉我。

【问题讨论】:

  • 你确定 k-for-loop 和 j-for-loops 都是 getData.RowCount 吗?

标签: c# visual-studio-2010 excel datagridview generic-list


【解决方案1】:

我认为您需要为每一列创建一个新的 DataGridViewColoumn

for (int i = 0; i < columnCount; i++) 
{
    DataGridViewTextBoxColumn t = new DataGridViewTextBoxColumn(); 
    // ...
    dgv.Columns.Add(t);
}

而不是重复使用它。

【讨论】:

  • 嗯...这部分有帮助,谢谢。我现在得到了所有我选择的列,但我仍然只有一个列(值)中的数据。值是我的包装类中的属性,我无法将其设置为列名。呃……
猜你喜欢
  • 2020-01-12
  • 2020-05-05
  • 2015-06-12
  • 1970-01-01
  • 2014-03-31
  • 2016-12-31
  • 2013-08-02
  • 2021-03-20
  • 2014-06-23
相关资源
最近更新 更多