【问题标题】:Why does dataTable.Select always returning empty result?为什么 dataTable.Select 总是返回空结果?
【发布时间】:2016-04-07 10:57:57
【问题描述】:
var tmpTable = dt.Select("strText IN('" + strZipList + "')");
if (tmpTable.Any())
{
dt = tmpTable.CopyToDataTable();
}

dt = 数据表和 strText 的类型为string strZipList = string('1','2',....等)

已编辑: 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;
}

哪里出错了?

【问题讨论】:

  • 我们需要更多关于您拥有哪些数据的信息
  • strText 必须被推断为我想的变量,但它被用作字符串。只是第一眼的观察

标签: c# asp.net


【解决方案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 + ")");

【讨论】:

    【解决方案2】:

    您能否更具体地说明strZipList 字符串格式?

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

    应该是'1, 2, 3 ...',而不是'1', '2', '3'...

    哎呀! 我是说: 应该是'1', '2', '3' ...',而不是'1,','2'

    顺便说一句,在组合它们时一定要检查你的字符串是否完全相同(没有多余的空格等)。 '1'' 1' 不一样(看看多余的空格...)

    【讨论】:

    • 那是错别字,我检查过没问题..!
    • 你能提交一个strZipList和strText内容的例子吗?
    • 糟糕!,strZipList 的格式不正确。是'1,2,3,4,5'。谢谢@AdamCalvetBohl。
    猜你喜欢
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2019-12-05
    相关资源
    最近更新 更多