2013-10-16 42 views
1

我有一個包含一些行的DataTable。其中複製到DataView。現在我有ID爲List<string>的ID。其中包含GridView中的所選項目。現在我想用AND作爲過濾器來過濾這個DataView如何使用多個「AND」條件將過濾器應用於DataView

當我只應用一個它的工作,但申請多個AND不起作用。

在的.cs:

List<string> selectedAddress = new List<string>(); 
protected DataView GetSelectedItems() 
{ 
    DataView dv = new DataView(dtresult); 
    int count = selectedAddress.Count(); 
    if (count > 0) 
    { 
     string query = "ID="; 

     for (int j = 0; j < selectedAddress.Count; j++) 
     { 
      string val = selectedAddress[j].ToString(); 
      if (j == 0) 
      { 
       query += val + " and "; 
      } 
      else 
      { 
       query += "ID=" + val + ""; 
      } 
     } 
     dv.RowFilter = query; 
    } 
    return dv; 
} 

任何想法?

回答

4

試試這個:

List<string> selectedAddress = new List<string>(); 
protected DataView GetSelectedItems() 
{ 
    DataView dvResult = new DataView(dtresult); 
    string query = ""; 
    int count = selectedAddress.Count(); 

    for (int j = 0; j < selectedAddress.Count; j++) 
    { 
     string val = selectedAddress[j].ToString() + ","; 
     query += val; 
    } 

    query = query.Remove(query.Length - 1); 
    dvResult.RowFilter = "ID IN(" + query + ")"; 
    return dvResult; 
} 
+0

偉大@ Somnath..its太長的時間,但能正常工作..!謝謝! –

1

MSDN中所述值必須在引號內。 所以下面應該工作:

dv.RowFilter = "ID = '23' or ID = '46'"; 

反正當你的列表中包含的ID顯示那麼運營商應該還是不及其as應該具有在同一時間兩個ID表沒有行。