0

テキスト ボックスのテキスト変更イベントで実行されるバーコード スキャン アプリケーションがあります。バーコードが以前にアクセス データベースにスキャンされているかどうかを確認し、それに応じてユーザーを認証します。

テキストボックスに表示される数字が、読み取ったバーコードの 1 桁 (1 桁目) しかないという問題があります。

テキスト変更プロパティがすぐに検証されるため、この問題は発生しますか?

コードは次のとおりです

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        textBox1.SelectAll();
        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\dell\Documents\Database5.accdb;Jet OLEDB:Database Password=sudeep;");
        con.Open();
        try
        {
        //    con.Open();
             OleDbCommand cmd = new OleDbCommand("insert into barcode(id,dtime) values('" + textBox1.Text + "','"+label3.Text+"')",con);
            cmd.ExecuteNonQuery();
            label2.Text = "User Authenticated";
            label2.ForeColor = Color.Green;
            //MessageBox.Show("User Authenticated");

        }

        catch(Exception)
        {
            label2.Text = "User Already registered";
            label2.ForeColor = Color.Red;
           // MessageBox.Show(x.ToString());


        }

助けてください。

問題は、テキスト変更イベント プロパティにより、1 文字だけがスキャンされてデータベースに保存されるため、テキスト ボックスがバーコードの文字列をスキャンしないことだと思います。バーコードから文字列をスキャンする方法はありますか?

4

2 に答える 2

2

通常、これらのバーコード スキャナーはキーボード イベントを送信し、実際に、数字ごとに個別にイベントを発生させます。

バーコード スキャナーが別のキー (Enter キーなど) でスキャンを終了するかどうかを確認し、代わりに OnKeyDown イベントをキャッチする必要があります。または、バーコードが固定長の場合は、操作を行うTextBox.Text前にプロパティの長さを確認できます。

于 2013-09-26T14:05:40.620 に答える