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

dt = strText Table und ist vom Typ string strZipList = string ('1', '2', etc ....)Warum gibt DataTable.Select immer ein leeres Ergebnis zurück?

Herausgegeben: Table Struktur geschaffen, wie:

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; 
} 

Wohin geht es falsch?

+1

wir würden auf mehr Informationen benötigen, welche Daten Sie haben – ericosg

+0

strText als Variable abgeleitet werden muss nehme ich an, aber es wird als String verwendet. Nur eine Beobachtung vom ersten Blick – Tushar

+0

Was ist StrText? –

Antwort

0

Können Sie genauer im Zeichenformat strZipList sein?

strZipList = String ('1', '2', .... etc)

Es sollte wie '1, 2, 3 ...' sein, nicht wie '1', '2', '3'...

OOPS! Ich meine: Es sollte wie '1', '2', '3' ...' sein, nicht wie '1,','2'!

Übrigens, achten Sie darauf, dass Ihre Saiten GENAU die gleichen sind, wenn Sie sie betrachten (keine zusätzlichen Leerzeichen, etc ..). '1' ist nicht das gleiche wie ' 1' (siehe Zusatzräume ...)

+0

das sind Tippfehler, ich habe überprüft das ist ok ..! – Kaishu

+0

Können Sie ein Beispiel für den Inhalt von strZipList und strText einreichen? –

+0

** OOPS! **, strZipList war nicht im richtigen Format. Es war "1,2,3,4,5". Danke @AdamCalvetBohl. – Kaishu

1

Lassen Sie uns sagen, dass Ihre Suchliste List<string> ist. In diesem Fall könnten Sie wie in diesem Beispiel suchen (Entschuldigung, ich habe ein Beispiel geschrieben, bevor Sie Ihre Tabellenstruktur erklärt haben).

können Sie auch mit LINQ suchen, wie in einer anderen Zeile gezeigt Wenn Sie mit string Variable auswählen, schauen Sie in der dritten Zeile. this helps

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 + ")"); 
Verwandte Themen