0

チェックリストボックスに基づいてデータテーブルから1つ以上の列を取得するために、Vb.netのコードを理解するのに役立つ人はいますか? 例えば、

次の列名を持つこのテーブルがあります

Col1 Col2 col3 col4 Coln

v.11 v.12 v13 v14 v1n

v.11 v.12 v13 v14 v1n

v.11 v.12 v13 v14 v1n

col1 と col4 をチェックしたと仮定します。チェックされた項目の数に応じて、これら 2 つの列またはそれ以上を取得するようにコーディングしたいと思います。

4

1 に答える 1

0

私は最終的にコードを実行しましたが、誰かがより短く効率的なコードを見つけるのを手伝ってくれれば幸いです。私のコードが添付されていることに感謝します。

Dim table2 As New DataTable() ' datagridview にデータを表示します Dim citem As String ' チェック ボックス リストを読み取って table2 に列を作成します Dim table3 As New DataTable() ' チェック ボックス リストから行の値を取得します

    table2.Columns.Add("Risk Factors") ' create a common column between the different datatables (like ID)
    For Each citem In Crlist.CheckedItems
        table2.Columns.Add(citem)
    Next
    Dim rfselected As New List(Of String)
    Dim cselected As New List(Of String)
    Dim tblfiltered As New DataTable()
    For Each item In RfLst.CheckedItems
        rfselected.Add(String.Format("'{0}'", item))
    Next

    If rfselected.Count <> 0 Then
        Dim rows = atable.Select(String.Format("`Risk Factors` IN ({0})", String.Join(",", rfselected))) 'retrieve the rows from the orginal data called atable
        If rows.Length <> 0 Then
            table3 = rows.CopyToDataTable
        End If
    End If
    For Each dr As DataRow In table3.Rows
        table2.ImportRow(dr)
    Next
    DataGridView2.DataSource = table2
于 2013-05-06T08:22:45.157 に答える