我在WinForms中創建了一個c#應用程序,其中多個用戶將按照物理形式從sql中選擇記錄並進行編輯。
我想鎖定一個用戶正在使用的記錄。我已經嘗試了多個選項,但仍然有相同的記錄在兩個或三個用戶機器中可見。C#SQL排序規則在SQL中爲多用戶選擇
我的C#代碼檢索,更新,選擇和顯示記錄。
using (SqlConnection conn = new SqlConnection(connectString))
{
using (SqlCommand cmd=new SqlCommand("get_First_Unscan_Record_withUpdate",conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@usrName", username_Form);
conn.Open();
record_number = cmd.ExecuteScalar().ToString();
}
}
SqlParameter[] SQlparams =
{
new SqlParameter("@srno",SqlDbType.NVarChar,50) {Value=record_number.ToString()}
};
SqlDataReader dr = DM.GetDataReader("get_Record_with_Srno", SQlparams);
我的SQL存儲過程
Declare @srno int
update KYC_Index
set [transform_int] = 'Y',
[transform_int_by] = 'Danish',
[transform_int_time] = GETDATE(),
@srno = srno
where srno = (select C.srno
from (select top 1 srno,
index_Filename
FROM [KYC].[dbo].[KYC_Index] B
where B.[transform_int] = 'N'
and B.transform_status = 'N'
order by B.index_Filename, B.srno
) C
)
select @srno
我應該怎麼辦?
你只是想鎖定它,而其在某人的屏幕上,或者只是當你更新時。 – BugFinder
@BugFinder我想鎖定它,而其在某人的屏幕上 –
然後你的應用程序的行爲,因爲它應該 - 鎖是爲了防止更新同時,如果你需要阻止人們在相同的記錄上查看編輯屏幕 - 那麼你需要做到這一點 – BugFinder