防止同时将数据插入表中

时间:2011-01-12 09:11:52

标签: c# sql c#-4.0 insert

我正在开设一个在线销售网站。我正在使用C#4,0和SQL Server 2008,我想控制并阻止用户同时插入到表中,如dbo.orders ...我该怎么做?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您是否尝试在SQL中的C#代码中解决此问题?因为在SQL中它很简单。如果在存储过程的开头添加BEGIN TRAN并在最后添加COMMIT,则它将充当C#中的锁,防止并发代码执行有效地序列化请求。因此,如果有两个插入,它们将一个接一个地执行。要记住的一件事是它将是阻塞操作,即第二个插入在第一个插入完成之前不会开始(无论成功与否)。