【发布时间】:2013-04-01 14:10:20
【问题描述】:
在 WinForm C# 应用程序中,我有一个 Barcode_textbox。在TextChanged 事件中,我有一个 SQL 查询来检查数据库中的 TextBox.Text 值,即条形码。问题是对于每个输入的数字都会触发 SQL 查询,因此如果条码长度为 13,它将在数据库中检查 13,并且速度非常慢。
那么,什么是仅当用户停止在 TextBox 中写入(或条形码阅读器停止读取)时触发的 TextBox 事件,或者检查数据库中的条形码的最佳解决方案是什么。请注意,bacode 的长度不同
【问题讨论】:
-
添加一个带有“检查有效性”文本的按钮不是一个选项?
-
除了史蒂夫的建议,你可以听
Enter键吗? -
这不是最优的,想象一下超市里的这个软件。每次从条形码阅读器读取时,单击按钮会很耗时!
-
每次查询多少条条码记录?如果计数很小(例如几百或几千),您可以查询所有记录一次并将它们存储在本地数组中。这将允许您尽可能频繁地查询,因为它会非常快。我们将这种策略用于“国家/地区”文本框,但它只有 200 多条记录。
-
自从你提到超市,你还有什么其他限制吗?例如,它是触摸屏,还是运行您的应用程序的设备可以使用键盘和鼠标等设备?