1

問題: SQL Server データベース テーブルからチェックボックスの名前を取得し、"if" ステートメントでチェックされているかどうかを確認したいと考えています。

インターフェイス: 私のフォームはリストボックス、ボタン、チェックボックスで構成されています。

SQL Server テーブル:

ID   Name   cbName
 1   Rest   cbRest

私は書きたい:

sb = dt.rows(0)(cbName) 
    If sb.Checked() = True Then
        ListBox1.Items.Add(dt.Rows(0)(1).ToString())
    Else
        MsgBox("Nothing checked")
    End If

予想される出力は、リスト ボックスの Rest である必要があります。もちろん、次のステップは何百ものチェックボックスをループすることですが、今のところ、これを機能させる方法を明確にしたいと思います。

現在、次のエラーが表示されます。

タイプ 'System.String' のオブジェクトをタイプ 'System.Winddows.Forms.CheckBox' にキャストできません

SQL Server 2008 Express、64 ビット Windows 7 Pro で Visual Basic Express 2008 を使用しています。

前もって感謝します

4

3 に答える 3

0

変数 (sb) を宣言する必要があります。ボタンのスニペットは次のとおりです。

Dim btn As Button 
...
btn = CType(Controls("Button1"), Button)

あなたの場合、「ボタン」の代わりに SQL の cbName 値を使用します。

「Controls」は、ボタン/チェックボックスを保持する親です。スニペットは、フォームのボタンで機能します。チェックボックスを保持するコンテナーがある場合は、container_name.Controls() を使用します。

于 2013-04-23T14:59:31.397 に答える
0

チェックボックスをページに直接追加したと仮定すると、 を使用して名前でコントロールを見つけることができるMe.Controls.Item(controlID)ので、あなたの場合は

Dim sb as CheckBox = CType(Me.Controls.Item(dt.rows(0)("cbName")), CheckBox)
于 2013-04-23T15:00:00.060 に答える