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 に答える