同时输入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,依此类推

有人能帮我吗?知道我该怎么做吗?

同时输入Query c#

听起来应该有一个存储过程来输入事务并返回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

如果您不想使用标识列,因为它在当天结束时重置,您可以创建另一个表来保存标识列。

我的意思是,边表将包含标识列,您将插入该表并从中获取标识值。在一天结束时,您可以运行一个任务来截断边表。