这是我的代码
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();
答案 0 :(得分:3)
DataTable.Select
方法使用与DataColumn.Expression
property相同的规则来创建过滤器。
来自它的文档;
用户定义的值
用户定义的值可以在要与之比较的表达式中使用 列值。 字符串值应包含在单个值中 引号(以及字符串值中的每个单引号字符 必须通过在另一个单引号前加上它来逃避 字符)。
我相信你可以使用;
var dataForOneCampaint = DTgraph
.Select("Campaign = '" + compainNames[i].ToString() + "'")
.ToList();
或使用String.Format
作为Felipe mentioned。
答案 1 :(得分:2)
尝试使用'
之间的string
字符,示例:
var dataForOneCampaint = DTgraph
.Select(string.Format("Campaign = '{0}'", compainNames[i].ToString()))
.ToList();