我在使用%
过滤数据表时遇到问题当我使用SQL服务器查询搜索字符串时,我希望得到相同的结果:
select PatientName
from table
where patientname like '%d%k%'
结果: 迪士尼孔 DK约翰 驴
如何使用数据表过滤器获得相同的结果?
我尝试过使用:
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,我想过滤该数据表。
问候
答案 0 :(得分:2)
答案 1 :(得分:0)
看起来你正在尝试使用LINQ。如果你要显示代码行,请使用``tags。
LINQ中的LIKE与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;
答案 2 :(得分:0)
尝试这个
替换你的代码
string sFilter = " AreaID = '" + Sumber + "' And DescriptionTrim Like '%" + sFindStr + "%' ";
与
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 + "%' "; }
没有解决,但没什么帮助..