假设有这样一张表
table1
id varchar 主键  //格式为yyyyMMdd00001~yyyyMMdd99999
有一个方法,GetID()//取的当天表中的最大序列并加1。增加一条数据的方法,Create()//调用GetID()方法,获得最大序列后,插入一条新数据。问题是在多线程中即使锁了,GetID()还是会得到一样的值,导致无法插入数据库(主键相同)。。代码如下 static readonly object ob = new object();
 private static string GetID()
{
     string id="";
     lock(ob)
     {
         //查询最大序列
         //系列重新组合,把最大序列+1赋给id.
      }
      retun id
}private static void Create()
{
     //增加一条数据,前提调用GetID()方法,获得最大序列,
}我想GetID()方法中的查询最大序列的Sql同一时间只有一个线程再用,为什么还是会查到相同的id呢。