2016-04-07 81 views
0
var tmpTable = dt.Select("strText IN('" + strZipList + "')"); 
if (tmpTable.Any()) 
{ 
dt = tmpTable.CopyToDataTable(); 
} 

DT = DataTable,並 strText中是類型的string strZipList =串( '1', '2',....等)爲什麼dataTable.Select總是返回空結果?

編輯: 數據表結構創建爲:

private DataTable CreateListTabel() 
{ 
    DataTable _dtList = new DataTable(); 
    DataColumn dc1 = new DataColumn("strText", typeof(String)); 
    DataColumn dc2 = new DataColumn("strValue", typeof(String)); 
    DataColumn dc3 = new DataColumn("isSelected", typeof(Boolean)); 
    DataColumn dc5 = new DataColumn("intSrNo", typeof(Int32)); 
    DataColumn dc6 = new DataColumn("intID", typeof(Int32)); 
    DataColumn dc7 = new DataColumn("isExcluded", typeof(Boolean)); 
    DataColumn dc8 = new DataColumn("isDisabled", typeof(Boolean)); 
    _dtList.Columns.Add(dc1); 
    _dtList.Columns.Add(dc2); 
    _dtList.Columns.Add(dc3); 
    _dtList.Columns.Add(dc5); 
    _dtList.Columns.Add(dc6); 
    _dtList.Columns.Add(dc7); 
    _dtList.Columns.Add(dc8); 
    _dtList.AcceptChanges(); 
    return _dtList; 
} 

哪裏出問題了?

+1

我們需要你有什麼數據 – ericosg

+0

strText中必須被推斷爲變量,我想更多的信息,但它作爲一個字符串。只是從第一個觀察 – Tushar

+0

觀察什麼是strText? –

回答

0

你能更具體的strZipList字符串格式嗎?

strZipList =串( '1', '2',....等)

應該是這樣'1, 2, 3 ...',不像'1', '2', '3'...

OOPS! 我的意思是: 它應該像'1', '2', '3' ...',不像'1,','2'

順便說一句,一定要檢查你的字符串是完全相同的時候,它們(沒有額外的空間等)。 '1'' 1'不一樣(看額外的空格...)

+0

這是錯別字,我已經檢查過,沒關係..! – Kaishu

+0

你能提交一個strZipList和strText的內容的例子嗎? –

+0

** OOPS!**,strZipList格式不正確。它是'1,2,3,4,5'。感謝@AdamCalvetBohl。 – Kaishu

1

假設您的搜索列表是List<string>。在這種情況下,你可以在這個例子中搜索(對不起,我在你解釋你的表結構之前寫了一個例子)。

另外,您可以使用LINQ進行搜索,如另一行所示 如果您使用string變量進行選擇,請查看第三行。 希望這有助於

DataTable table = new DataTable(); 
table.Columns.Add("column", typeof(string)); 

table.Rows.Add("1"); 
table.Rows.Add("2"); 
table.Rows.Add("2"); 
table.Rows.Add("3"); 
table.Rows.Add("4"); 
table.Rows.Add("4"); 

List<string> searchList = new List<string> { "1", "2" }; 
string searchString = "1, 2"; 

//DataTable.Select(string) example 
var filteredTable = table.Select("column in (" + string.Join(", ", searchList.ToArray()) + ")"); 
//LINQ 
var filteredTable2 = table.AsEnumerable().Where(row => searchList.Contains(row.Field<string>("column"))).CopyToDataTable(); 
//using string for search 
var filteredTable3 = table.Select("column in (" + searchString + ")"); 
相關問題