在Cache中放了一个DataTable表对象
我要在asp.net中直接向Cache的DataTable 中插入数据,我的代码是:private void AddName(string wName)
{
DataTable dt = (DataTable)Cache["dt"];
DataRow dr = dt.NewRow();
dr["wid"] = dt.Rows.Count+1; //自增列?是一个id,但不知道该怎么写
dr["wName"] = wName; //wName是一个不能重复的字段,建立了PrimaryKey
dt.Rows.Add(dr);
}
但这里有问题,就是多个用户同时访问这个页面,就有可能同事执行这个“AddName”函数,那样如何保证Cache中dt表的“wid”字段能不出错呢?
我要在asp.net中直接向Cache的DataTable 中插入数据,我的代码是:private void AddName(string wName)
{
DataTable dt = (DataTable)Cache["dt"];
DataRow dr = dt.NewRow();
dr["wid"] = dt.Rows.Count+1; //自增列?是一个id,但不知道该怎么写
dr["wName"] = wName; //wName是一个不能重复的字段,建立了PrimaryKey
dt.Rows.Add(dr);
}
但这里有问题,就是多个用户同时访问这个页面,就有可能同事执行这个“AddName”函数,那样如何保证Cache中dt表的“wid”字段能不出错呢?
lock(obj){
这里处理cache
}
DataColumn column = new DataColumn();
column.DataType = typeof(int);
column.ColumnName = "自动增长列";
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
方法2:
用lock来保持同步