C# 如何使用WhereParameters和EntityDataSource执行类似类型的查询

C# 如何使用WhereParameters和EntityDataSource执行类似类型的查询,c#,asp.net,entitydatasource,C#,Asp.net,Entitydatasource,在后面的代码中,我希望为entitydatasource应用一个动态where子句,但我希望where类似而不相等。我有一个相等的代码,我想要一个等价的代码,以某种方式将其转换成一个类似的语句 EntityDataSource1.WhereParameters.Add("Name", TypeCode.String, tbxSearch.Text); 阅读Jupaol评论后的解决方案: Xaml: 在该代码中,您只添加了一个参数,您需要在where子句中定义类似的比较 您发布的代码可以翻译为:

在后面的代码中,我希望为entitydatasource应用一个动态where子句,但我希望where类似而不相等。我有一个相等的代码,我想要一个等价的代码,以某种方式将其转换成一个类似的语句

EntityDataSource1.WhereParameters.Add("Name", TypeCode.String, tbxSearch.Text);
阅读Jupaol评论后的解决方案:

Xaml:


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

您发布的代码可以翻译为:

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

出于某种原因,如果我将参数声明放在与您类似的位置(在代码中),它将不起作用,但是如果我将参数放在标记中,如下所示:

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

它工作正常

我想在代码隐藏中完成它。。。由于我需要在某个事件上筛选数据源…应用相同的逻辑,因为
Where
属性是
字符串
,您可以在代码后面指定Where条件,请检查我的更新响应。我得到了此错误:查询语法无效。在我刚刚测试的标识符'abcd'附近,它正在工作,请记住,您应该为您的字段替换上述代码中的
fname
。它应该看起来像
It.YourField
btw我需要在xaml中添加什么吗?比如说参数在哪里?我在密码里有这个。this.EntityDataSource1.Where=“类似于“%”的it.Name+tbxSearch.Text+“%”;嗯:(
    <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 + '%'";
        <WhereParameters>
            <asp:ControlParameter ControlID="tbxSearch" Name="Name" Type="String" DefaultValue="" />
        </WhereParameters>
this.eds.Where = "it.fname like '%' + @Name + '%'";