I’m trying to do a messaging system where the inbox is a gridview of all the messages associated with a user’s ID. I have a global get method in C# to get the user currently signed in. I’m wondering how to tie this back so that the database only shows the data I want it to.
In my .aspx.cs file, I have something like:
protected void Page_Load(object sender, EventArgs e)
{
int userInSess = getLoggedInUser();
Session["user"] = user;
}
In the source file, I have something like:
<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>
I know this is wrong but I can’t seem to find clear answer on how to exactly do this. Any help would be greatly appreciated.
Thanks
You need to reference the value stored in the session with:
Note the addition of
SessionFieldattribute.SqlDataSource control only uses
Name="User"of the Parameter object to match a @user placeholder in SQL query