以 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 |