同时输入Query c#
本文关键字:Query 输入 | 更新日期: 2023-09-27 18:20:44
我有一个C#应用程序,一个或多个用户可以在其中进行交易。一旦事务完成,应用程序就会根据数据库中输入的最大数据数提供一个数字。当只有一个用户在执行事务时,它可以正常工作,但当有多个用户并且我同时按下提交按钮时,所有用户都会收到相同的号码。
我想做的是,当用户同时点击提交按钮时,他们不会收到相同的号码。
我查询的号码是:
SqlCommand cmd5 = new SqlCommand("Select Max(q_num) FROM [NUMBER] Where CONVERT(VARCHAR(10),g_time,110) = '" + DateTime.Now.ToString("MM-dd-yyyy") + "'", con);
它获取每天的最大事务数。即使所有用户同时点击提交按钮,我该如何做到这一点?用户1将获得数字1,用户2将获得数字2,依此类推
有人能帮我吗?知道我该怎么做吗?
听起来应该有一个存储过程来输入事务并返回Inserted.q_num
字段。
类似于:
create procedure transaction_add
@customerid int,
@othermetadata varchar(100)
as
insert into sometable (customerid, othermetadata)
output Inserted.q_num
values (@customerid, @othermetadata)
go
如果您不想使用标识列,因为它在当天结束时重置,您可以创建另一个表来保存标识列。
我的意思是,边表将包含标识列,您将插入该表并从中获取标识值。在一天结束时,您可以运行一个任务来截断边表。