如何在c#中使用like语句获取记录

时间:2017-11-17 18:04:51

标签: c# asp.net

您好我已经在.cs页面的动态创建表中获取记录,我知道如何获取具有特定ID的记录,如下所示

string searchExpression = "ID = 5"
DataRow[] foundRows = YourDataTable.Select(searchExpression);

现在你可以遍历结果,如下所示:

foreach(DataRow dr in foundRows)
{

}

但我不知道如何在.cs页面上写出类似的声明。

我尝试过如下但不能正常工作

string searchExpression = "ID like'%5%'"
DataRow[] foundRows = YourDataTable.Select(searchExpression);

1 个答案:

答案 0 :(得分:1)

你必须这样做:

string searchExpression = "ID like'*5*'";

为了让它更具可重用性,请将其连接起来。像:

string searchExpression = "ID like '*" + fromParameter + "*'";

我认为如果你搜索“*”本身会抛出异常,但是不能正确记住。请测试那个案例。

请参阅以下文章:http://www.csharp-examples.net/dataview-rowfilter/ 关于如何编写用于过滤/选择的表达式。

从上面的链接复制:

  

如果列名包含任何这些特殊字符〜()#\ / => < + - *%放大器; | ^'“[],您必须将列名括在方括号[]内。如果列名包含右括号]或反斜杠\,请使用反斜杠(]或\来对其进行转义。

dataView.RowFilter = "Num = 10"             // number is equal to 10
dataView.RowFilter = "Date < #1/1/2008#"    // date is less than 1/1/2008
dataView.RowFilter = "Name <> 'John'"       // string is not equal to 'John'
dataView.RowFilter = "Id IN (1, 2, 3)"                    // integer values
dataView.RowFilter = "Price IN (1.0, 9.9, 11.5)"          // float values
dataView.RowFilter = "Name IN ('John', 'Jim', 'Tom')"     // string values
dataView.RowFilter = "Date IN (#12/31/2008#, #1/1/2009#)" // date time values
dataView.RowFilter = "Name LIKE 'j*'"       // values that start with 'j'
dataView.RowFilter = "Name LIKE '%jo%'"     // values that contain 'jo'