2

问题:

异常详细信息:System.Data.EntitySqlException:查询语法无效。近期'<',第 8 行,第 16 列。

代码背后:

    protected void Page_Load(object sender, EventArgs e)
    {

        int Id = 3;

        Page.DataBind();
    }

项目.aspx.cs

<asp:EntityDataSource ID="ProjectEntityDataSource" runat="server" ConnectionString="name=DBEntities" DefaultContainerName="DBEntities" EnableFlattening="False" EntitySetName="projects" Select="it.[Id], it.[ClientId], it.[Name], it.[Description]"
    Where="it.ClientId = <%# Id %> " >
</asp:EntityDataSource>

我尝试过的: ASP.NET 数据绑定/从代码隐藏中获取变量

我知道这太容易了,但我无法弄清楚问题出在哪里,为什么我无法绑定数据背后的代码。谢谢!

4

3 回答 3

2

您可以借助以下示例在您的情况下

protected void Page_Load(object sender, EventArgs e)
{
     ProjectEntityDataSource.WhereParameters["Username"].DefaultValue ="3";
     Page.DataBind();
}

aspx

<asp:EntityDataSource ID="ProjectEntityDataSource" runat="server"
     ConnectionString="name=DBEntities" DefaultContainerName="DBEntities" 
     EnableFlattening="False" EntitySetName="projects" Select="it.[Id], it.[ClientId], 
     it.[Name], it.[Description]" Where="it.ClientId = @Username">
      <WhereParameters>
        <asp:Parameter Name="Username" Type="String" />
    </WhereParameters>
</asp:EntityDataSource>
于 2013-04-09T07:28:03.907 回答
2
<asp:EntityDataSource ID="ProjectEntityDataSource" runat="server" 
    ConnectionString="name=DBEntities" DefaultContainerName="DBEntities" 
    EnableFlattening="False" EnableInsert="True" EnableUpdate="True"      
     EntitySetName="projects" Where="it.ClientId= @Id"  >
    <WhereParameters>
        <asp:QueryStringParameter Name="Id" Type="Int32" QueryStringField="Id" />
    </WhereParameters>
</asp:EntityDataSource>

试试这个代码。

于 2013-04-09T07:47:40.770 回答
1

像这样改变......我认为它会起作用......

 Where='<%#"it.ClientId =" + Id.ToString %> ' 
于 2013-04-09T07:31:56.547 回答