Public Sub Table() Dim Connection As MySqlConnection Dim DataAdapter As MySqlDataAdapter Dim Command As MySqlCommand Connection = New MySqlConnection("server=localhost; userid=root; database=setting;") Command = New MySqlCommand("Select * FROM table", Connection) DataAdapter = New MySqlDataAdapter(Command) Dim DataTable As New DataSet DataAdapter.Fill(DataTable) Ddlname.DataSource = DataTable Ddlname.DataTextField = "Name" Ddlname.DataValueField = "Name" Ddlname.DataBind() End Sub
マークアップは表示されていませんが、ボタンのクリック、自動ポストバックを備えたコントロール、またはページ上で発生するイベントによって、ページ読み込みイベントが再実行されることに注意してください。
したがって、理論上は、単純なボタンをクリックしただけでも、コンボ ボックスを読み込むコードが再実行される可能性があります。したがって、イベントごと、クリックごとに、コンボボックスが再度追加またはロードされる可能性があります。
したがって、ほぼすべてのページのデザイン パターンでは、グリッド、リスト ボックス、ドロップダウン ボックスなどを 1 回だけ読み込むことになります。
したがって、コードは次のようになります:
リーリーしたがって、ページ読み込みコードに非常に重要な If Not IsPostBack が含まれていることを確認して、コンボボックスを読み込むコードを実際に 1 回だけ読み込めるようにしてください。
これは「ポストバックである」テストですか? 99% のページはこの方法で機能します。私は、asp.net ページには「firstLoad」イベントが必要だとよく考えます。これは、ページが読み込まれるたびにイベントが発生するためです。これは、ページのポストバックをトリガーするすべてのボタンやコードに当てはまります。したがって、ページを読み込むたびにグリッド、リストボックス、またはドロップダウンを読み込むコードを実行するため、コンボボックスは何度も読み込まれ (そして大きくなり) ます。したがって、IsPostBack テストを採用し、使用し、「いいね!」してください。すべてのページに対してテストを実行し、99% 以上のページでこのテストが必要です。
実際には、上記の提案を適用しないと、機能する Web ページを構築することはほとんど不可能になります。