やあみんなvb.netのコンボボックスにアイテムを追加したいです。しかし、必要なデータはデータベースにあります。
ここにSQLクエリステートメントがあります:
"SELECT DISTINCT(Tags) from Legal_Records"
私がやりたいのは、このSQLクエリの結果をComboBoxに追加することです。
誰でもこれで私を助けることができます、それを単純なtnxの人にしてください!:)
datagridviewをコンボボックスのように見せることができます。
行ヘッダーと列ヘッダーを削除します。「下矢印」ボタンを追加することでドロップダウンアクションを複製できます。矢印ボタンをクリックするとイベントが追加されます。データグリッドビューが表示されます。データグリッドビューのセルをクリックすると表示されます。 。選択したセルの内容をコピーしてテキストボックスにコピーし、その後datagridviewを非表示にする必要があります。
必要なコントロールは3つだけ*で、データソースを簡単に管理できます(datagridviewを使用)。
* (1)textbox and (2)arrow button down - to make it look like a combobox.. last is the (3)datagridview
そのクエリから複数の結果が返される場合がありますが、必要な処理を実行する方法は次のとおりです。
まだ接続していない場合は、何らかの接続が必要です。
Dim conn As SqlConnection = New SqlConnection('connection string) conn.Open()
コマンドが完了しました。次のようにします。
DimコマンドAsSqlCommand= New SqlCommand( "SELECT DISTINCT(Tags)from Legal_Records"、conn)
今、あなたは次のようなリーダーが必要です:
薄暗いリーダーAsSqlDataReader= command.ExecuteReader() '返す値が1つしかないことがわかっている場合を除き、クエリはオブジェクトの配列を返します。その場合は、command.ExecuteScalar()を使用して、最初の行の最初の列のみを返します。 reader.Read()中 ComboBox1.Items.Add(reader.GetString(0))'GetInt32、GetDoubleなども実行できます。GetStringまたは選択したものを呼び出すたびに、オブジェクト配列内の次のアイテムに移動します`
それはそれです、それがあなたのすべてのリソースを閉じて処分するのを助けそして忘れないことを願っています。
これが私のサンプルです
cbsection.Items.Clear()
strsql = "select DISTINCT(section) from sassign where grade like @field1"
sqlcmd = New SqlClient.SqlCommand(strsql, sqlconn)
With sqlcmd
.Parameters.AddWithValue("@field1", cbgrade.Text)
End With
sqldr = sqlcmd.ExecuteReader
While (sqldr.Read())
With cbsection.Items.Add(sqldr("section"))
End With
End While
sqlcmd.Dispose()
sqldr.Close(