【发布时间】:2015-09-12 08:12:01
【问题描述】:
为什么我只在局部变量中修改会话变量时会更新它。如果他们共享相同的引用,那么我想知道为什么它只在这种情况下更新,而不是在我使用类似代码的任何其他情况下。
private void AddRefCodeToDTandConvertUnitValue(string StrRefCode)
{
DataTable dt = new DataTable();
dt = Session["dataTable"] as DataTable;
if (!dt.Columns.Contains("refCode"))
dt.Columns.Add("refCode", typeof(String));
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["refCode"] = StrRefCode;
if (DrpUnits.Items.FindByText(dt.Rows[i]["Units"].ToString()) != null)
dt.Rows[i]["Units"] = DrpUnits.Items.FindByText(dt.Rows[i]["Units"].ToString()).Value;
}
}
【问题讨论】:
-
Session Variable Gets Updated有什么问题?您如何从Session获得更新结果? -
你能用代码更清楚你的问题吗?你会把这段代码放在哪个地方?
-
我在本地数据表中获取了会话变量的值。然后修改数据表。但不要更新会话变量。但是在本地数据表中所做的更改会反映在会话变量中,而不会更新会话变量。我认为不是复制值,而是复制数据表中会话变量的引用。我的问题是为什么?为什么要复制参考?