C#仅允许一次扫描QR码



我们在产品上使用QR码。除唯一的序列号外,每个QR码实际上是相同的。

我正在编写用于构建产品套件的C#Win表单程序。然后,他们扫描该套件中的每个产品以完成订单。一些套件包含同一产品的倍数。我想防止用户简单地扫描套件中具有倍数的产品的相同QR码。

我将创建一个win应用程序的数据库,以存储QR码已从套件所需的总数中扫描。

要确保没有扫描相同的QR码,我是否只需要对先前扫描的序列号进行检查,我是否正确?如果是这样,最有效的方法是如何做到的?

谢谢

这取决于数据库中QR码的存储方式以及每个QR码的不同之处。它是否存储为数据/图像?QR代码正在编码哪些确切的数据?

您提到QR码实际上是相同的,但是它们具有独特的序列号。该序列号是否存储在QR代码中?如果是这样,则在解码后您可以简单地搜索数据库中的序列号。

就效率而言,使用唯一的序列号作为表中的标识符列。然后,要查询该序列号,并且仅在查询不返回任何内容时批准扫描。不过,这并不是完全安全的,因为一旦您试图将值写入表,它可能已经由其他呼叫者编写。

另一方面,如果您对列有唯一的约束,则可以尝试插入扫描的序列号 - 如果它已经存在,则可以失败。

如果使用单个用户/计算机用于扫描每个套件,并且扫描每个套件的过程具有确定的开始或结束,并且存储的数据并不大,则并且将在一次会话中扫描扫描的每个套件,我将将每个项目存储在内存集合中,直到扫描整个套件,然后将完整的套件写入数据库中。

  • 您可以针对内存集合检查每个新代码。
  • 这有助于确保您在数据库中没有部分集合(孤儿数据(。
  • 使删除错误扫描的物品更有效。

最新更新