1

アプリケーションに問題があります。ボタン クリック イベントで 2 つのセッション変数を作成し、別のページにリダイレクトして、データベースからデータを選択するメソッドを実行し (2 つのセッション変数をパラメーターとして使用)、結果をグリッドに表示します。

2 人 (またはそれ以上) のユーザーがアプリケーションにアクセスし、独自のセッション値を設定し、データ取得メソッドを実行し、もちろん自分のデータが表示されることを期待するまで、すべて正常に機能します。

最終的に発生するのは、両方のユーザーが自分の特定のデータではなく、同じデータを表示することです。基本的に、ユーザー A は自分のデータを正常に表示しますが、ユーザー B はユーザー A のデータを表示することになり、自分のデータは表示されません。

注: これは、特定のデータに 20 秒間隔でアクセスしようとした場合にのみ発生します。

ここに私のコードサンプルがあります:

//The user control that sets the session variables and redirects               
Session.Clear();
Session.["ID"] = TxtPatientIDCode.Text.ToString());
Session["DOB"] = Convert.ToDateTime(TxtDateOfBirth.SelectedDate.Value.ToShortDateString());
Response.Redirect("mypage");

// the user control that gets the session variable values and executes //the data method                   
if (Session["ID"].ToString() != null)
{
    SelectData();
}

修正

これは、SelectData() メソッドで発生することです。

private void SelectData()
{
    DataSet ds = Data.GetData(Session["ID"].ToString(),Session["DOB"].ToString());
    gv.DataSource = ds;
    gv.DataBind();
}

また、これをデータベーステーブルに記録しましたが、データに誰がいつアクセスしたか、および使用されているセッション値が表示されるため、問題なく挿入されています。

助けてくれてありがとう

4

0 に答える 0