0

我正在尝试做一个消息传递系统,其中收件箱是与用户 ID 关联的所有消息的网格视图。我在 C# 中有一个全局 get 方法来获取当前登录的用户。我想知道如何将其绑定,以便数据库只显示我想要的数据。

在我的 .aspx.cs 文件中,我有类似的内容:

 protected void Page_Load(object sender, EventArgs e)
      {
          int userInSess = getLoggedInUser();
          Session["user"] = user;

    }

在源文件中,我有类似的内容:

   <asp:SqlDataSource ID="ProjectDB" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>" 
    SelectCommand="SELECT [SentByUserName], [Subject], [CreateDate] FROM [Messages] WHERE (ReceivedByUserID = @user) ORDER BY [CreateDate] DESC">
    <SelectParameters>
        <asp:SessionParameter Name = "user" />
    </SelectParameters>
</asp:SqlDataSource>

我知道这是错误的,但我似乎无法找到关于如何准确执行此操作的明确答案。任何帮助将不胜感激。

谢谢

4

1 回答 1

1

您需要引用存储在会话中的值:

<asp:SessionParameter Name="User" SessionField="user" /> 

注意SessionField属性的添加。

SqlDataSource 控件仅使用Name="User"Parameter 对象来匹配 SQL 查询中的 @user 占位符

于 2012-06-27T04:49:28.797 回答