当过滤器文本具有单引号时,行过滤失败

时间:2012-08-24 08:54:29

标签: c# datatable rowfilter

正如我的倾斜明确提到的那样,我试图用一个带有单引号的过滤器文本来过滤数据表。

我的陈述如下

dgURComments.ItemsSource).ToTable().Select("URComments = '" + txtComments.Text.Trim() + "'");

我怎样才能克服这个?

1 个答案:

答案 0 :(得分:1)

而不是摆弄DataTable.Select我会使用Linq-To-DataSet

IEnumerable<DataRow> rows =  tbl.AsEnumerable()
       .Where(r => r.Field<String>("URComments") == txtComments.Text.Trim());

如果您需要过滤结果中的DataTable,则可以使用CopyToDataTable

DataTable tblFiltered = rows.CopyToDataTable();

最低要求是System.Core.dll的引用和System.Linq的using指令。默认情况下,如果您创建新的Visual C#2008项目,则会提供这些项目。 LINQ to DataSet还需要引用System.Data.dllSystem.Data.DataSetExtensions.dll以及使用指令。