我正在尝试建立一个消息系统,其中收件箱是与用户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>
我知道这是错的,但我似乎无法找到关于如何做到这一点的明确答案。任何帮助将不胜感激。
由于
答案 0 :(得分:1)
您需要使用以下内容引用存储在会话中的值:
<asp:SessionParameter Name="User" SessionField="user" />
请注意添加SessionField
属性。
SqlDataSource控件仅使用Parameter对象的Name="User"
来匹配SQL查询中的@user占位符