我有一個DataTable的一些數據,我想過濾LIKE
查詢,所以我寫了一個像下面的代碼和一切工作正常,我生成查詢並將它傳遞給RowFilter
對象DataView
。在數據視圖中使用Like語句RowFlter
if (results.Count() == 2)
{
if (results[0].ToString() == "" && results[1].ToString() != "")
{
searchString = String.Format("[" + searchBy + "] LIKE '%{0}'", results[1].ToString());
}
else if (results[0].ToString() != "" && results[1].ToString() == "")
{
searchString = String.Format("[" + searchBy + "] LIKE '{0}%'", results[0].ToString());
}
else if (results[0].ToString() != "" && results[1].ToString() != "")
{
searchString = String.Format("[" + searchBy + "] LIKE '{0}%{1}'", results[0].ToString(), results[1].ToString());
}
}
if (searchString != "")
{
DataView dv = new DataView(AccountList.Tables[0]);
dv.RowFilter = searchString;
var tab = dv.ToTable();
DataSet data_set = new DataSet();
data_set.Tables.Add(tab);
ProcessDataSetAndLoadData(data_set);
}
在上面的代碼段,除了最後一個其他工作正常,如果狀態,在這種狀態下我得到這樣的搜索字符串,
[AccountCode] LIKE 'C%L'
當我路過這RowFilter
我越來越像下面的eror,
錯誤像運算符:字符串模式'c%l'是無效的。
從所有其他條件我得到searchString像下面這些條件工作正常。
[AccountCode] LIKE '%c%'
[AccountCode] LIKE 'c%'
[AccountCode] LIKE '%c
我的問題是爲什麼我收到錯誤只爲這樣 字符串? [AccountCode] LIKE'c%l'
請建議我完成我的任務。
感謝你的答案@KiranBeladiya,是他們的任何方式使用這樣的字符串 'TE%XT' –
你可以試試有兩個條件與AND如下:[AccountCode] LIKE 'C%' AND [ AccountCode] LIKE'%l' –
好吧會試試@Kiran Beladiya –