这是我的代码

var compainNames = (from row in DTgraph.AsEnumerable()
                                group row by row.Field<string>("Campaign") into grp
                                select new
                                {
                                    CampaignName = grp.Key
                                }).ToList();

 var dataForOneCampaint = DTgraph.Select("Campaign = " + compainNames[i].ToString()).ToList();

其中DTgraph是数据表。

我有这个例外:

无法解释位置12的令牌'{'。

你能帮忙吗?

我调试,我可以看到compainNames有3个字符串

这行的例外

 var dataForOneCampaint = DTgraph.Select("Campaign = " + compainNames[i].ToString()).ToList();

===============>>#1 票数:3 已采纳

DataTable.Select方法使用与DataColumn.Expression属性相同的规则来创建过滤器。

从文档中

用户定义的值

可以在表达式内使用用户定义的值与列值进行比较。 字符串值应该用单引号引起来 (并且字符串值中的每个单引号字符都必须通过在其前面加上另一个单引号字符进行转义)。

相信您可以使用;

var dataForOneCampaint = DTgraph
                        .Select("Campaign = '" + compainNames[i].ToString() + "'")
                        .ToList();

或者使用Felipe 提到的 String.Format

===============>>#2 票数:2

尝试在string之间使用' char作为示例:

var dataForOneCampaint = DTgraph
                        .Select(string.Format("Campaign = '{0}'", compainNames[i].ToString()))
                        .ToList();

  ask by user2208349 translate from so

未解决问题?本站智能推荐: