【问题标题】:Looping through DataGridView columns, the first column is not recognized循环遍历DataGridView列,第一列无法识别
【发布时间】:2014-03-05 14:56:03
【问题描述】:

使用foreach 循环,我将遍历datagridview 中的所有列。我拥有的datagridview 正在从 CSV 文件中填充。

它正确显示了所有数据。

这是 foreach 循环:

foreach (DataGridViewTextBoxColumn col in dgviewPreview.Columns)
{
   if (col.Name.Equals("FirstColumn"))
      MessageBox.Show(col.Name);
}

这是程序读取的我的 CSV 文件示例:

如果我删除了

if (col.Name.Equals("FirstColumn"))

我的 foreach 循环中的行,显示所有列。即使我在条件中使用除 FirstColumn 之外的任何其他列名(例如“公司名称”、“电子邮件”),消息框也会正确显示。但是 if 语句永远无法识别第一列(无论我将哪个文件加载到 Gridview 或该列的名称是什么)。我不知道我做错了什么。有人遇到过同样的问题吗?

更新:我当前列在运行时的屏幕截图。

更新 2This 是我正在使用的 csv 文件的链接。

【问题讨论】:

  • @GrantWinney 是的,我已经做到了。我用我所问的屏幕截图更新了我的帖子。请看一看!
  • 您尝试过使用 Col Index 吗?我的意思是从 0 到 Col Count - 1?
  • @Nilesh 是的,我做到了。它可以工作并识别 0 索引。但是当我将它改回 col.Name 时,它​​无法识别它。即使所有其他列都被识别。这可能是我想念的非常简单的事情。我也尝试修剪字符串无济于事。
  • 给我一些时间,我会回家试试这个,因为我现在无法访问 VS。我会关注这个帖子...
  • @Nilesh 谢谢,我很感激。

标签: c# .net csv datagridview computer-science


【解决方案1】:

你试过这样不区分大小写的比较吗?:

if(String.Compare(col.Name, "firstcolumn", true) == 0) { ... } 

【讨论】:

    【解决方案2】:

    由于某种奇怪的原因,当我将 CSV 文件的全部内容复制到新文件(只是一个ctrl+A/ctrl+V)时,问题得到了解决,现在它似乎可以工作了。我一直不明白这个问题,但现在它已经解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      相关资源
      最近更新 更多