我試圖過濾一個數據視圖,其中有一些是數值的多列。當輸入一個字符串時,一切都很完美,但是一旦輸入一個數字值(如檢查信使號碼),它就會過濾爲空。如何過濾DataView RowFilter中的整數?
我的代碼:
private void tbxSearchCourier_KeyUp(object sender, KeyEventArgs e)
{
string outputInfo = "";
string[] keyWords = tbxSearchCourier.Text.Split(' ');
foreach (string word in keyWords)
{
if (outputInfo.Length == 0)
{
outputInfo = "('Courier #' LIKE '%" + word + "%' OR Name LIKE '%" + word + "%' OR Branch LIKE '%" + word + "%' OR 'Contact Number' LIKE '%" + word
+ "%' OR 'Email Address' LIKE '%" + word + "%')";
}
else
{
outputInfo += " AND ('Courier #' LIKE '%" + word + "%' OR Name LIKE '%" + word + "%' OR Branch LIKE '%" + word + "%' OR 'Contact Number' LIKE '%" + word
+ "%' OR 'Email Address' LIKE '%" + word + "%')";
}
}
CourierDV.RowFilter = outputInfo;
}
我尋找一個解決方案在網絡上,但找不到任何有效的東西。爲什麼會發生這種情況,我該如何解決?
您已將列名稱放在''''之間,使其成爲字符串文字。如果它是一個複雜的名稱,請在列名稱周圍使用'[]'。另外爲了將一個整數列與LIKE運算符進行比較,您應該先將其轉換爲字符串。 –
爲了使過濾器更具可讀性,請使用String.Format混合過濾器字符串和輸入值。 –
謝謝@RezaAghaei這是該死的'[]',我忘記使用,而不是''''。 – sgtBlueBird