以 CheckBox 控制 SQL Query 上 所選擇 既 Column 至 DataGridView

 
以 CheckBox 控制 SQL Query 上 所選擇 既 Column 至 DataGridView
 

   Form1.vb
 
   Imports System.Data.SqlClient
   Imports System.Text
 
   Public Class Form3
 
   Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
      CheckBox1.Text = "Team ID"
      CheckBox2.Text = "Team Name"
      CheckBox3.Text = "League ID"
 
      GetGridData(True, True, True)
 
   End Sub
 
   Private Sub GetGridData(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
 
         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 C1C(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
      DataGridView1.DataSource = New DataTable
      GetGridData(CheckBox1.Checked, CheckBox2.Checked, CheckBox3.Checked)
   End Sub
 
   Private Sub C2C(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
      DataGridView1.DataSource = New DataTable
      GetGridData(CheckBox1.Checked, CheckBox2.Checked, CheckBox3.Checked)
   End Sub
 
   Private Sub C3C(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
      DataGridView1.DataSource = New DataTable
      GetGridData(CheckBox1.Checked, CheckBox2.Checked, CheckBox3.Checked)
   End Sub
 
   End Class