2012-08-24 36 views
0

正如我清楚地提到的那样,我正在尝试使用单引号的过滤器文本过滤数据表。当过滤器文本有单引号时,行过滤失败

我声明如下

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

我怎样才能从这个克服?

+0

可能的重复[如何在传递给DataTable Select()的字符串中包含撇号?](http://stackoverflow.com/questions/4906384/how-do-i-include-an-apostrophe-在字符串传递到数据表中选择) – Rawling

+2

说“它失败”没有帮助。你应该总是描述它是如何失败的,抛出了什么样的例外,观察到的结果与预期的结果相比,等等。 – Chris

回答

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。默认情况下,如果您创建新的Visual C#2008项目,则会提供这些项目。 LINQ to DataSet还需要参考System.Data.dllSystem.Data.DataSetExtensions.dll以及使用指令。

+0

真棒。作品完美无瑕!非常感谢 –