2012-08-24 35 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

真棒。作品完美無瑕!非常感謝 –