我有一个数据表选择像:
productData.Select("Name = 'AAA BBB # CCC'");
我知道该条目在那里,由于#字符而无法使用.我尝试使用[]转义,例如:
productData.Select("Name = 'AAA BBB [#] CCC'");
但它仍然不起作用.我知道单引号会将其加倍,因此变成.但是我还需要关注哪些其他字符以及如何使这种情况起作用.
解决方法:
您是否绝对必须使用这样的DataTables?正是由于这个原因,我一直对DataTable中基于文本的查询感到非常难以置信.
如果有可能,我建议您开始使用LINQ.您已经可以使用DataTable完成此操作,例如
var query = products.AsEnumerable()
.Where(row => row.Field<string>("Name") == "AAA BBB # CCC");
这样,您就不必担心转义等问题.如果使用强类型的数据集,它将变得更加简单,因为您可以直接引用属性而不是使用字符串名称.