2011-01-12 72 views
1

我正在开发一个在线销售网站。我正在使用C#4,0和SQL Server 2008,我想控制和防止用户像dbo.orders一样插入表中......我该怎么做?防止同时插入数据表

+0

你是指同时订购特定物品?你想保持一致的项目吗? – 2011-01-12 09:13:50

回答

0

在您的Add方法中,您可以使用锁定关键字lock,这将允许一次一个线程。

0

插入不会有问题,但更新可以。您需要研究的术语是数据库并发性。有四种基本模型可以实现,每种模型都有自己的优点和缺点。有些更适合某些情况,网上有数百篇关于这个主题的文章。

0

您是否试图在SQL中的C#代码中解决这个问题?因为在SQL中它很简单。如果在存储过程的开始处添加BEGIN TRAN,并在最后添加COMMIT,则这将作为C#中的锁定,从而阻止并发代码执行有效序列化请求。所以如果有两个插入,它们将会被一个接一个地执行。有一点需要记住的是,它将阻止操作,即第二次插入将在第一次插入完成之前不会启动(无论是否成功)。