将C#变量传递给aspx源Sql查询

时间:2012-06-27 03:19:52

标签: asp.net sql gridview

我正在尝试建立一个消息系统,其中收件箱是与用户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>

我知道这是错的,但我似乎无法找到关于如何做到这一点的明确答案。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

您需要使用以下内容引用存储在会话中的值:

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

请注意添加SessionField属性。

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