2014-03-05 81 views
1

使用foreach循环,我正在浏览我的datagridview中的所有列。我的datagridview正在从CSV文件填充。循环遍历DataGridView列,第一列不被识别

它正确显示所有数据。

这是foreach循环:

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

这是我的CSV样本文件的程序读取:

enter image description here

如果我删除

如果(col.Name.Equals(“FirstColumn”))

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

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

更新2This是我使用的CSV文件的链接。

+0

@GrantWinney是的,我已经做到了。我用屏幕截图更新了我的帖子。请看一下! – Disasterkid

+0

你试过Col指数吗?我的意思是从0到Col Count - 1? – Nilesh

+0

@Nilesh是的,我做到了。它工作并认识到0索引。但是,当我将其更改回col.Name时,它无法识别它。即使所有其他列都被识别。这可能是一件非常简单的事情,我错过了。我也尝试修剪字符串以及无济于事。 – Disasterkid

回答

0

您是否尝试过在敏感的这样的比较?:

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

是的,我有。但谢谢你的建议。 – Disasterkid

0

一些奇怪的原因,当我复制了CSV的全部内容文件到新文件(只是一个ctrl+A/ctrl+V问题得到解决的情况下, ),现在似乎正在工作。我从来没有理解这个问题,但现在它解决了。