セッション変数はReferenceとして使用されており、 valueとして使用したいので、使用に問題があります。
私は自分のソリューションをデバッグして、次のようなものを作成しました:
DataTable dt =
(DataTable)HttpContext.Current.Session[
"SearchReturn-DataTableSchema"];
// Adding Rows of Data to DataTable dt
HttpContext.Current.Session["SearchReturn-DataTable"] = dt;
((DataTable)HttpContext.Current.Session[
"SearchReturn-DataTableSchema"]).Rows.Clear();
return dt;
私の考えは、「DataTableSchema」には列スキーマを持つ DataTable のみを、「DataTable」には列 + 行を含めることでした。
問題は、 DataTableSchemaからすべての行をクリアすると、変数 dt の行もクリアされることです(!!)
どうすればこれを回避できますか? 変数 (この場合はセッション変数) を参照ではなく値として割り当てるにはどうすればよいですか?
ありがとうございました。
答え
これ
DataTable dt = (DataTable)Session["SearchReturn-DataTableSchema"];
これである必要があります:
DataTable dt = ((DataTable)Session["SearchReturn-DataTableSchema"]).Copy();
:-)