像买票系统之类的软件是如何实现的呢?
那么多人同时去买票,但重来没有看出先过买出同一张票的情况.
但如果说他们的售票是同时进行的,那又为什么,我去买票时,看到的空位置,我就一定能买的到呢?如果是用了锁定,那有如何去保证高并发呢?请大家指导一'二.

解决方案 »

  1.   

    一方面可以在数据访问层加锁
    lock(lockObject) //lockObject为数据访问对象的静态私有成员
    {
        //数据操作
    }另一方面在数据库表增加一个时间戳,用DateTime类型或Timestamp类型
    参考:
    http://msdn.microsoft.com/msdnmag/issues/04/09/DataPoints/其实你用VS的设计器来生成Command和DataAdapter后,查看InitializeComponents方法里面对这两个组件的设置,特别是SQL语句,看看跟你写的有什么不同之处:)参考一下文章:
    http://geekswithblogs.net/ranganh/archive/2005/07/07/45632.aspx
    http://geekswithblogs.net/ranganh/archive/2005/07/07/45633.aspx
    http://www.dotnetjunkies.com/tutorial/25ce4293-2e28-4bc4-8860-1c462c076e16.dcik
    http://www.dotnetjunkies.com/tutorial/92fd33ca-7528-42a0-b974-8607a04b8b56.dcik
    http://www.dotnetjunkies.com/tutorial/552c60ec-ae3c-4038-b3ab-28a147e4e06a.dcik
      

  2.   

    上面参照见这个贴子:
    http://community.csdn.net/Expert/topic/4473/4473783.xml?temp=.5218622
      

  3.   

    你把插入数据做成存储过程,插入的时候先进行判断,如果没有再插入。
    参看
    http://blog.csdn.net/Knight94/archive/2006/05/13/726953.aspx
    所提到的存储方法。