Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确保门票销售不会超出允许范围?_C#_Mysql_.net Core_Entity Framework Core_E Commerce - Fatal编程技术网

C# 如何确保门票销售不会超出允许范围?

C# 如何确保门票销售不会超出允许范围?,c#,mysql,.net-core,entity-framework-core,e-commerce,C#,Mysql,.net Core,Entity Framework Core,E Commerce,售票公司如何保证不再售票 例如,您有40张可用票,售出39张,两人同时开始购买,两人都会有该票可用的信息,但一旦一人完成购买,另一人仍会有该票可用的虚假信息,购买不会被阻止 如何解决这个问题?不确定您希望在数据库端或c#端得到什么样的答案。 在任何情况下,c#端都应该非常简单,看起来像: private void Order_bt_Click(object sender, RoutedEventArgs e) { DataTable data = ReadDataFr

售票公司如何保证不再售票

例如,您有40张可用票,售出39张,两人同时开始购买,两人都会有该票可用的信息,但一旦一人完成购买,另一人仍会有该票可用的虚假信息,购买不会被阻止


如何解决这个问题?

不确定您希望在数据库端或c#端得到什么样的答案。 在任何情况下,c#端都应该非常简单,看起来像:

 private void Order_bt_Click(object sender, RoutedEventArgs e)
    {

        DataTable data = ReadDataFromDB();

        if (data.Rows.Count <= 40)
        {
            // reserve the ticket to a person
        }
        else
        {
            MessageBox.Show("Sorry, the show is sold out");
        }

    }
private void Order\u bt\u单击(对象发送者,路由目标)
{
DataTable data=ReadDataFromDB();

如果(data.Rows.Count一旦有人进入购买工作流,就将该票证标记为不可用(到期时间可能为20分钟),以便其他购物者也无法购买该票证。如果第二个购物者尝试进入购买工作流,则告诉他们该票证不再可用

“进入采购流程”被定义为“关键部分”,一次只允许一个人进入。两个人不可能同时申请最后一张可用票


当第一个人购买时,永久性地减少可用票证。如果第一个人取消购买或放弃工作流,则将保留的票证释放回可用池。

通常有一些技术,例如。这取决于第1个人按下“购买”按钮,即使销售尚未完成,票仍标记为“已售出”。如果第2人按“购买”,她会发现票已售出。如果第1人未在规定时间内完成购买,则会删除“已售出”标志并取消购买。我将投票结束此问题,因为它与计划无关从技术上讲,这个问题在20世纪60年代的航空订票系统(基于IBM的CICS,IMS/DC)中得到了解决.这意味着:该节目几乎不会卖完。这是你想要的吗?至少他试过了。谢谢,伙计,但这对同时购买不起作用。rf1234,我可以问一下为什么吗?如果每次购买都记录在数据库中,最终将售出最大可用门票。除非我遗漏了什么。。。