frmTransactionという名前のフォームがあり、txtTranNo、txtCustCode、dtbDate、txtRemarks、txtTotalAmountがあり、dtgDetailという名前のdatagridviewがあります。
dtgDetailには、列cTranNo、nLineID、cProductID、nQty、nPrice、およびnAmountがあります。
cProductIDは、データメンバーcProductと表示メンバーcDescriptionを持つコンボボックス列であるため、実行時に、ユーザーには製品コードではなく製品名が表示されます。
しかし、私の製品には2000のレコードがあり、フォームをロードすると非常に遅くなります。また、データベースに保存/コミットするときにも時間がかかります。
cProduct列は、フォームの速度と関係があると思います。これは本当ですか?どうすればスピードアップできますか?
編集
コードを表示することはできますが、コードがどのように機能するかを説明するだけで混乱は少なくなります。私の設計時には、datagridviewに空の列があります。datagridviewの名前は、バインドされるテーブルの名前でもあり、実行すると、テーブルのスキーマに基づいて自動的にバインドされる列が作成されます。また、フィールドがコンボボックス列になるのか、単なるテキストボックスになるのかをプログラムに通知するフラグもあります。コンボボックス列の場合は、SQLスクリプトを生成し、実行して、コンボボックスのデータソースとなるデータテーブルに結果を保存します。コンボボックス列のデータメンバーと表示メンバーもフラグによって決定されます。
コンボボックス列のデータソースのスクリプトに条件を設定しないことをお勧めします。
編集-12-05-12datagridview コンボボックス列にバインドするときにsqlデータソースをフィルタリングしようとしています...そしてフォームを高速化するのに役立ちます。私の問題は、コンボボックスに含まれていない新しいレコードをdatagridviewに追加するときです。たとえば、このスクリプトをdatagridviewにバインドします。「selectID、Desc from product where ID in(1,2,3,4,5)」。ID = 6の新しいレコード/アイテム/製品をdatagridviewに挿入すると、説明datagridviewが表示されません...