AdLock在剃刀页
问题描述:
的等效性我正在研究一个.Net Razor网页,我想知道如何阻止读取注册表(以前我在AdO中使用AdLockOptimistic),直到更新完成,我的代码是...AdLock在剃刀页
var sqlLeeUsr = "SELECT UsrSmlla FROM tbUsr WHERE ([email protected])";
var usr = db.QuerySingle(sqlLeeUsr, intUsrNro);
if (usr != null)
{
intSecuencia = usr.UsrSmlla + 1;
var sqlModUsr = "UPDATE tbUsr SET [email protected] FROM tbUsr WHERE ([email protected])";
db.Execute(sqlModUsr, intSecuencia, intUsrNro);
}
答
,而不是查询的值,然后递增它,你应该在一个做了两次手术。那样的话,每次调用都会肯定得到一个唯一的值。
要执行的代码可能是:
var sqlLeeUsr = "UPDATE tbUsr SET UsrSmlla=UsrSmlla+1
FROM tbUsr
OUTPUT INSERTED.UsrSmlla
WHERE ([email protected])";
var changed = db.QuerySingle(sqlLeeUsr, intUsrNro);
这将更新表并返回新(增量)值。
'我想知道如何阻止读取注册表(以前我在ADO中使用过AdLockOptimistic)'我不明白你的意思。这种情况下的“注册表”是什么?你的代码现在做什么?你想要它做什么呢? – mjwills
我只想管理表tbUsr中的并发。我从这个表(tbUsr)中取出最后一个序列(UsrSmlla),然后给这个序列加上1,并保存在intSecuencia中,最后我用intSecuencia中的值更新字段UsrSmlla。我希望其他人在上一个过程完成时能够访问相同的注册表。 –
请参阅AdLockOptimistic在... https://www.w3schools.com/asp/prop_rs_locktype.asp –