C#asp.net使用%筛选数据表,就像sql server那样:columtext-like';%a%b%';

C#asp.net使用%筛选数据表,就像sql server那样:columtext-like';%a%b%';,c#,sql,asp.net,C#,Sql,Asp.net,我使用%筛选数据表时遇到问题 使用SQL server查询搜索字符串时,我希望得到相同的结果: select PatientName from table where patientname like '%d%k%' 结果: 香港迪士尼 约翰 驴子 如何使用Datatable筛选器获得相同的结果 我试过使用: tbl.Select("patientname like '%d%k%'", "PatientName DESC") 并得到一个错误 语法的工作原理如下: tbl.Select("pa

我使用%筛选数据表时遇到问题

使用SQL server查询搜索字符串时,我希望得到相同的结果:

select PatientName
from table
where patientname like '%d%k%'
结果: 香港迪士尼 约翰 驴子

如何使用Datatable筛选器获得相同的结果

我试过使用:

tbl.Select("patientname like '%d%k%'", "PatientName DESC")
并得到一个错误

语法的工作原理如下:

tbl.Select("patientname like '%d k%'", "PatientName DESC")
但是它不会返回我想要的结果

有人能帮我吗

这是我的完整代码:

    protected void cboProductMEIIT_ItemRequested(object o, RadComboBoxItemsRequestedEventArgs e)
    {
        RadComboBox cboProductMEIIT = (RadComboBox)o;

        string sFindStr = e.Text.Trim();
        string sFilter = " AreaID = '" + Sumber + "' And DescriptionTrim Like '%" + sFindStr + "%'  ";


        cboProductMEIIT.DataSource = ((DataTable)Session["dtbAbbrev_" + Sumber]).Select(sFilter, "SequenceNo DESC, Description Asc").Take(15);
        cboProductMEIIT.DataBind();
    }
我将会话设置为datatable,并希望筛选该datatable


关于

数据表。选择
无法执行此操作

在“通配符”标题下

在字符串的中间不允许使用通配符。例如,不允许使用“te*xt”


看起来您正在尝试使用LINQ。如果您正在显示代码行,请使用``标记

就像在LINQ中一样,它的工作原理与在SQL中有点不同。编写LINQ查询可以如下所示

var results = from c in db.tbl
where SqlMethods.Like(c.patientname, $"%{searchString}%")
select c;
如果需要订单的话

var results = from c in db.tbl
where SqlMethods.Like(c.patientname, $"%{searchString}%")
orderby c.patientname descending
select c; 
试试这个

替换您的代码

string sFilter = " AreaID = '" + Sumber + "' And DescriptionTrim Like '%" + sFindStr + "%'  ";


未解决,但帮助不大。

您遇到了什么错误?Like运算符中的错误:字符串模式“%d%k%”无效。看起来在datatable.select中不支持通配符。它只支持开始和/或结束处的通配符,但不支持字符串内的通配符。是否有其他方法可以实现与sql查询相同的结果?这可能会有所帮助:是否有其他方法可以实现与sql查询相同的结果?我已经用代码编辑了我的帖子。我可以使用您提供的代码执行此操作吗?如果您试图执行类似的查询,则不能使用Select。我提供的代码允许您在数据库中搜索。
string sFilter = " AreaID = '" + Sumber + "' ";
                         if (sFindStr.IndexOf(" ") == -1) { sFilter = sFilter + " And DescriptionTrim Like '%" + sFindStr + "%' "; } else {
    int iSpc = sFindStr.IndexOf(" ");
    string sA = sFindStr.Substring(0, iSpc);
    string sB = sFindStr.Substring(iSpc + 1, sFindStr.Length - (iSpc + 1));
    sFilter = sFilter + " And DescriptionTrim Like '%" + sA + "%' And DescriptionTrim Like '%" + sB + "%'  "; }