如何使用WhereParameters和EntityDataSource执行Like类型查询



在后面的代码中,我想为实体数据源应用一个动态where子句,但我希望这个where类似而不相等。我有这个代码,它是相等的,我想要一个等价代码,以某种方式将其转换为Like语句。

EntityDataSource1.WhereParameters.Add("Name", TypeCode.String, tbxSearch.Text);

阅读Jupaol评论后的解决方案:

Xaml:

<WhereParameters>
   <asp:ControlParameter ControlID="tbxSearch" Name="Name" Type="String" />
</WhereParameters>

代码隐藏:(加载事件)

if (string.IsNullOrEmpty(tbxSearch.Text))
{
   this.EntityDataSource1.Where = "1=1";  //fetch all data if empty
}
else
{
   this.EntityDataSource1.Where = "it.Name like '%' + @Name + '%'"; //filter
}

在该代码中,您只添加了一个参数,需要在where子句中定义类似的比较

你发布的代码可以翻译成:

    <asp:EntityDataSource runat="server" ID="eds"
        .....
        Where="it.fname like '%' + @Name + '%'"
        <WhereParameters>
            <asp:ControlParameter ControlID="tbxSearch" Name="Name" DefaultValue="" />
        </WhereParameters>

添加代码后面的位置:

this.eds.Where = "it.fname like '%' + @Name + '%'";

第1版:

出于某种原因,如果我像您一样(在代码中)放置参数声明,它就不起作用,但是如果我像这样将参数放置在标记中:

        <WhereParameters>
            <asp:ControlParameter ControlID="tbxSearch" Name="Name" Type="String" DefaultValue="" />
        </WhereParameters>

并且在Page_Load

this.eds.Where = "it.fname like '%' + @Name + '%'";

它工作于

相关内容

  • 没有找到相关文章

最新更新