我有我的ASP淨網頁上的代碼(it's的URL與ID www.example.com/GestHC.aspx?pID=36006394)靜態變量GET參數
public partial class GestHC : WebPart
{
public GestHC()
{
}
static int iIDHC;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitializeControl();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
iIDHC = -1;
string str = this.Page.Request["pID"];
iIDHC = int.Parse(str.Replace("'", ""));
MyModel hc = MyModel.readdata(iIDHC);
this.txtName.text = hc.name
this.txtSurname.text = hc.surname
...
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
try
{
MyModel hc = new MyModel();
if (iIDHC != -1)
{
hc = MyModel.readdata(iIDHC);
}
else
{
hc.name = txtname.text;
hc.surname = txtSurname.text;
}
hc.dir1 = dir.text;
...
hc.savedata()
}
catch (Exception)
{
this.navegarAGridMensaje("Error");
}
}
}
的問題是,當用戶加載數據並保存時,一切工作正常,但當超過2個用戶或瀏覽器一起工作時,數據會混合在一起。例如:
User a creates:
ID = 10
Name = XXX
Age = 8
User b creates:
ID = 11
Name = YYY
Age = 10
然後,如果用戶更新他數據(ID = 10),或許設置Age
到80
結果是
User a creates:
ID = 10
Name = XXX
Age = 8
User b creates:
ID = 11
Name = YYY
Age = 88
所以(ID = 11)被更新。 Debuggin ..我可以看到一個靜態ID,當第二個用戶加載它可以讀取以前的用戶iIDHC ....
如何避免此問題?
yap,但是如果我打開de ID = 10,當我點擊保存按鈕時,iIDHC值是-1而不是10.我想可能是將iIDHC值保存在隱藏的輸入框中或其他東西... –
嗯..當你保存iIDHC時,如何將iIDHC更新爲10。我有點困惑,所以不能確切地指出我的問題。但想法是將ID保留在一個地方,並在每次更改時都保持更新。一個實例變量應該足以處理這個問題。 – CarbineCoder