处理DataTable列名称不匹配异常

时间:2012-07-11 06:32:21

标签: linq c#-4.0

我从Excel工作表上传我的数据表,我在查找特定列时面临问题,具有讽刺意味的是我不知道列的位置,可以是任何地方或可能不存在

所以我不能使用索引,当我使用列名称然后是空格导致问题

我假设我知道列的索引,但我如何处理空格

到目前为止,我试过了

代码:


if (ds.Tables[0].Columns[3].Caption.Replace(" ", "").Equals("XXXX"))
                {
                    var ds = from r in ds.Tables[0].AsEnumerable() select new  { Fname=r.Field<String>("XX XX") , Lname=r.Field<string>(" Yy YY Y  ") };
                    ds.ToList();
                }

我是否需要关心列名中的区分大小写?

如果它与给定的String匹配,我如何找到Column索引?

1 个答案:

答案 0 :(得分:0)

您可以找到如下列:

DataColumn yourColumn = ds.Tables[0].Columns.Cast<DataColumn>()
                                    .Where(r => r.Caption.Trim().Equals("XXXX",StringComparison.InvariantCultureIgnoreCase))
                                    .FirstOrDefault();