我有我的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