以 CheckedListBox 控制 SQL Query 上 所選擇 既 Column 至 DataGridView
Form1.vb |
Imports System.Data.SqlClient Imports System.Text Public Class Form6 Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load CheckedListBox1.Items.Add("Team_ID") CheckedListBox1.Items.Add("Team_Name") CheckedListBox1.Items.Add("League_ID") ABC(False, False, False) End Sub Private Sub ABC(ByVal A As Boolean, ByVal B As Boolean, ByVal C As Boolean) If Not (A) And Not (B) And Not (C) Then DataGridView1.DataSource = New DataTable Else DataGridView1.DataSource = New DataTable Dim i As Integer = 0 Dim connectionString1 As String = _ "Data Source=.\SqlExpress; Initial Catalog=Soccer; Integrated Security=SSPI" Dim con1 As SqlConnection = New SqlConnection(connectionString1) con1.Open() Dim SqlString1 As New StringBuilder SqlString1.Append("SELECT") If A Then SqlString1.Append(" Team_ID") i += 1 End If If B Then If i > 0 Then SqlString1.Append(",") End If SqlString1.Append(" Team_Name") i += 1 End If If C Then If i > 0 Then SqlString1.Append(",") End If SqlString1.Append(" League_ID") End If SqlString1.Append(" FROM dbo.Team ORDER BY Team_ID") Dim Adapter As New SqlDataAdapter(SqlString1.ToString(), con1) Dim ds As New DataSet Adapter.Fill(ds) DataGridView1.DataSource = ds.Tables(0).DefaultView DataGridView1.AutoResizeColumns() ds.Dispose() con1.Dispose() End If End Sub Private Sub CheckedListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CheckedListBox1.DoubleClick ABC(CheckedListBox1.GetItemChecked(0), CheckedListBox1.GetItemChecked(1), CheckedListBox1.GetItemChecked(2)) End Sub Private Sub CheckedListBox1_MouseClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CheckedListBox1.MouseClick ABC(CheckedListBox1.GetItemChecked(0), CheckedListBox1.GetItemChecked(1), CheckedListBox1.GetItemChecked(2)) End Sub Private Sub CheckedListBox1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CheckedListBox1.MouseDoubleClick ABC(CheckedListBox1.GetItemChecked(0), CheckedListBox1.GetItemChecked(1), CheckedListBox1.GetItemChecked(2)) End Sub Private Sub CheckedListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CheckedListBox1.SelectedIndexChanged ABC(CheckedListBox1.GetItemChecked(0), CheckedListBox1.GetItemChecked(1), CheckedListBox1.GetItemChecked(2)) End Sub End Class |