gpt4 book ai didi

c# - 如何使用搜索字符串搜索数据表中的行?

转载 作者:可可西里 更新时间:2023-11-01 03:12:53 25 4
gpt4 key购买 nike

我想在我的 DataTable 中搜索行。

我已经试过了:

 protected void imggastsuche_Click(object sender, EventArgs e) 
{
string searchstring = txtgastsuche.Text;

DataTable tb = DataBaseManager.GetDataTable(mysqlconnectionstring);

DataRow[] foundRows = tb.Select("FIRSTNAME,LASTNAME,NAME,COMPANY,TIMEFROM,TIMETO,CREATOR Like '%" + searchstring + "%'");

tb = foundRows.CopyToDataTable();

this.ListView.DataSource = tb;
this.ListView.DataBind();

}

但是我的字符串有错误。

如果我想搜索这些列怎么办?

最佳答案

您收到错误是因为 Select 的参数是 filterExpression 并且您已经传递了所有列。将 filterExpression 理解为 sql 中的 WHERE 子句。您想要所有列,但只想按一列进行过滤。无论如何,您都会获得所有列,因为它们都是 DataTable/DataView 的一部分,因此您无需明确列出它们。

您可以使用 DataTable.Select , DatView.RowFilter方法或 LINQ-to-DataSet :

LINQ-To-DataSet(我更喜欢):

var filtered = tb.AsEnumerable()
.Where(r => r.Field<String>("CREATOR").Contains(searchstring));

ADO.NET(DataTable.Select):

DataRow[] filteredRows = tb.Select("CREATOR LIKE '%" + searchstring + "%'");

ADO.NET(DataView.RowFilter):

 tb.DefaultView.RowFilter = "CREATOR LIKE '%" + searchstring + "%'";

如果您想在任何列中搜索此字符串:

DataRow[] filteredRows = tb.Select("FIRSTNAME LIKE '%" + searchstring + "%' OR LASTNAME LIKE '%" + searchstring + "%' OR NAME LIKE '%" + searchstring + "%' OR COMPANY LIKE '%" + searchstring + "%' OR CREATOR LIKE '%" + searchstring + "%'");

与 Linq 相同:

var filtered = tb.AsEnumerable()
.Where(r => r.Field<String>("FIRSTNAME").Contains(searchstring)
|| r.Field<String>("LASTNAME").Contains(searchstring))
|| r.Field<String>("NAME").Contains(searchstring)
|| r.Field<String>("COMPANY").Contains(searchstring)
|| r.Field<String>("CREATOR").Contains(searchstring));

关于c# - 如何使用搜索字符串搜索数据表中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com