3

我有一个数据表选择,例如:

productData.Select("Name = 'AAA BBB # CCC'");

我知道该条目在那里,它只是因为 # 字符而不起作用。我试过用 [] 转义,比如:

productData.Select("Name = 'AAA BBB [#] CCC'");

但它仍然不起作用。我知道对于单引号,我将它们加倍,所以'变成''。但是我还需要关注哪些其他角色以及如何让这个案例发挥作用。

4

2 回答 2

3

一定要像这样使用 DataTables 吗?正是出于这个原因,我一直对 DataTable 中基于文本的查询感到非常紧张。

如果可能的话,我建议您开始使用 LINQ。你已经可以做到这一点DataTable,例如

var query = products.AsEnumerable()
                    .Where(row => row.Field<string>("Name") == "AAA BBB # CCC");

这样您就不必担心转义等问题。如果您使用强类型数据集,它会变得更加简单,因为您可以直接引用属性而不是使用字符串名称。

于 2010-09-27T07:22:00.450 回答
2

你有没有尝试过这样的事情?

productData.Select(@"Name = 'AAA BBB # CCC'");
于 2010-09-27T07:22:17.880 回答