1

WinForm C# アプリケーションには Barcode_textbox があります。イベントではTextChanged、バーコードであるデータベースの TextBox.Text 値をチェックする SQL クエリがあります。問題は、入力された数字ごとに SQL クエリが起動されるため、長さが 13 のバーコードの場合、データベースで 13 のチェックが行われ、非常に遅くなることです。

では、ユーザーが TextBox への書き込み (またはバーコード リーダーの stpos 読み取り) を停止したときにのみ発生する TextBox イベントとは何か、またはデータベース内のバーコードをチェックするための最適なソリューションとは何か。バコードの長さが異なることに注意してください

4

5 に答える 5

0

クエリを非同期にするのはどうですか?

簡単な汚い解決策ができない、または必要な場合は、タイマーに固執します

于 2013-04-09T23:00:16.757 に答える
0

Validating イベントを使用して、TextBox の内容を確認できます。
ユーザーは TAB キーを押して、現在のフォーカスを TextBox からタブオーダーに続く次のコントロールに変更する必要があり、検証イベントがトリガーされます。

private void textBox_BarCode_Validating(object sender, CancelEventArgs e)
{
     // Code to check the barcode on the SQL database....       
     if(!ValidBarCode(textBox1.Text))
     {
           // Cancel the event and select the text to be corrected by the user.
           e.Cancel = true;
           textBox1.Select(0, textBox1.Text.Length);
     }

}

次のコントロールが、挿入されたバーコード (追加) (またはバーコードによって記述されたアイテムの数量を挿入するテキスト ボックス) を使用して何かを実行するコマンドであるとします。しばらくすると、すべての操作が非常に自然なデータ入力処理になります

于 2013-04-09T22:57:02.460 に答える