var tmpTable = dt.Select("strText IN('" + strZipList + "')");
if (tmpTable.Any())
{
dt = tmpTable.CopyToDataTable();
}
dt = DataTable和
strText的类型为string
strZipList = string('1','2',.... etc)
编辑: DataTable结构创建为:
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;
}
哪里出错?
答案 0 :(得分: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 + ")");
答案 1 :(得分:0)
您能否更具体地使用strZipList
字符串格式?
strZipList = string(&#39; 1,&#39;,&#39; 2&#39;,....等)
应该像'1, 2, 3 ...'
,而不是'1', '2', '3'...
<强> OOPS!强>
我的意思是:
它应该像'1', '2', '3' ...'
,而不是'1,','2'
!
顺便说一句,一定要检查你的琴弦是否完全相同(当没有额外的空格等等时)。
'1'
与' 1'
不同(查看额外的空格......)