gpt4 book ai didi

C# 相当于 adodb 记录集

转载 作者:行者123 更新时间:2023-11-30 17:14:41 25 4
gpt4 key购买 nike

我正在使用 VS2008 V3.5 将 VB6 Windows 应用程序转换为 C#。我有一个用于数据存储和检索的 SQL Server 2000 数据库。一个表包含一条 Int 类型的记录,用于生成报价编号,即 123456。在 VB6 中,我执行以下操作:

OpenDBCon
Set rst = New ADODB.Recordset
rst.Open "SELECT idx From tblQuoteIdx", cn, adOpenDynamic, adLockPessimistic
Select Case rst.BOF
Case False
rst.MoveFirst
Me.txtRef = rst!idx
tID = rst!idx + 1
OKToContinue = True
Case False
'Do something
End Select

If OKToContinue = True Then
Set rst = New ADODB.Recordset
rst.Open "update tblQuoteIdx set idx = '" & tID & "' ", cn, adOpenDynamic,
adLockPessimistic
End If
CloseDBCon

在 C# 中,我目前正在这样做:

        SqlConnection conn = new SqlConnection();
conn.ConnectionString = Vars.connstring;
conn.Open();
SqlCommand sqlComm = new SqlCommand("Select idx from tblQuoteIdx", conn);
Int32 tt = (Int32)sqlComm.ExecuteScalar();
Int32 tt2 = tt++;
SqlCommand sqlComm2 = new SqlCommand("Update tblQuoteIdx set " +
"idx = " + tt2 + "", conn);
sqlComm.ExecuteNonQuery();
conn.Close();

不幸的是,当几个人同时点击记录时,我发现现在没有“adLockPessimistic”游标锁,可能会出现相同索引号的多个实例。如果有人可以解释如何在 C# 中为这个特定目的使用 ADODB.Recordset 和/或使用记录锁以便在需要时锁定数据库记录,或者在 .Net 框架和 C# 主体中以更好的方式完成同样的事情,我将不胜感激。非常感谢。

诺尔

最佳答案

我相信您会发现这篇文章很有用: Pessimistic locking in ado.net基本上,您需要将所有内容包装在一个事务中,该事务在编辑开始后立即对记录应用锁定。这样,在释放锁之前,没有其他方法能够编辑这些值。

关于C# 相当于 adodb 记录集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com