コンボボックスに値のない空の行を追加したいとします。これは、ユーザがコンボボックスから何かを選択して、それを選択解除したい場合です。私はすでにDELETEをクリックし、選択したインデックスを-1に設定できることを既に指摘しているので、空の行がなければこれは必須です。ユーザーはコンボボックスの上部にある空の行を必要とします。このようにコンボボックスをロードしています....データバインドされたコンボボックスに空の行を追加する際の問題
sql="Select ID, Name from TblReference"
Dim da As New SqlDataAdapter(Sql, conn)
Dim ds As New DataSet
da.Fill(ds, "Dk")
ここで余分な行を追加しようとしています!これは以前@Plutonixによって私に提供されました。私はこれを動作させることができません。
Dim dr As DataRow = ds.Tables("Dk").NewRow
ds.Tables("Dk").Rows.InsertAt(dr, 0)
If ds.Tables("Dk").Rows.Count > 0 Then
With c
.DataSource = ds.Tables("Dk")
.ValueMember = "ID"
.DisplayMember = "Name"
.SelectedIndex = -1
End With
End If
この場合、C - はこの関数に渡すコンボボックスの名前です。私は複数のコンボボックスに同じ機能を使用しているので、私はそれが必要なのです。
ERRORは言う:
型のオブジェクトをキャストすることができません 'System.Data.DataRow' 'SystemIconvertible' を入力します。
新しい行には、ユーザーの「(選択)」、「(なし)」のようなデータはありませんが、それ以外の場合はどうすれば動作しますか?再編集:いくつかの偽のデータを追加する - Idはうまくいくはず - データテーブルはスマートで、各列に許されるものを知ることができます – Plutonix
@plutonix - 上記のエラーが出ます。いいえ、基本的にはアイテムの束がドロップダウンしていて、空の行が必要です。それが私の質問です。 – BobSki
'ds.Tables(" Dk ")の代わりに' ds.Tables( "Dk")Rows.Add(dr、0) 'を実行していませんか?Rows.InsertAt(dr、0)'? – Mark