从C#winform锁定和解锁sql数据库中的行

从C#winform锁定和解锁sql数据库中的行,c#,sql,winforms,C#,Sql,Winforms,我有一个项目,其中我使用select语句从sql表中选择一组记录,我需要锁定所选记录,然后更新一些记录,并将其他记录移动到另一个表中。现在我有一个这样的选择 Select item from tableA where batchno = 123; 我相信我会这样写来锁定它们 Select item from tableA with (rowlock, readpast) where batchno = 123; 这基本上就是选择,然后我对datagridview中的每个记录进行更新,并

我有一个项目,其中我使用select语句从sql表中选择一组记录,我需要锁定所选记录,然后更新一些记录,并将其他记录移动到另一个表中。现在我有一个这样的选择

Select item 
from tableA 
where batchno = 123;
我相信我会这样写来锁定它们

Select item 
from tableA with (rowlock, readpast)
where batchno = 123;
这基本上就是选择,然后我对datagridview中的每个记录进行更新,并将其放入另一个表中,该表包含已添加到记录以及原始字段的所有内容。当我将记录插入到另一个表中时,我删除了原始记录,那些未更新的记录,我更改了那些未更新且需要释放锁的记录的批号

我使用readpass是为了其他用户不会显示已选择的记录。我相信这是正确的


如果这是正确的,我需要知道如何发布记录。我是C#的新手,所以请说清楚并耐心点。

我相信一旦事务提交或回滚,锁就会被释放。

这是哪种类型的SQL,是SQL Server?