簡體   English   中英

想要刪除帶有Access數據庫列的DataGridView列

[英]Want to delete DataGridView column with Access database column

我正在使用VB2010和Access2007

我希望能夠在Access數據庫中添加/刪除列,並在運行時使用代碼在DataGridView中顯示結果。

我的VB表單有一個AddColumn按鈕添加和一個DropColumn按鈕刪除數據庫中的列,還有一個GataGridView1顯示結果。

AddColumn將列添加到數據庫和DataGridView。 DropColumn從數據庫中刪除列,但不從DataGridView中刪除列。 那是我的問題,如何從DataGridView1和數據庫中刪除該列!

我徒勞地尋找解決此問題的方法,並歡迎您提出任何建議。

這是我的VB代碼

導入System.Data.OleDb。

公開課表格3

Dim con1 As New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = I:/AccessDGV/dbAccessDGV.mdb")
Dim da As New OleDbDataAdapter("SELECT * FROM tblContacts", con1)

Dim dt As New DataTable
Dim bs As New BindingSource

Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    Dim conString As String = My.Settings.dbAccessDGVConnectionString
    Dim con1 As New OleDbConnection(conString)
    Dim CB As New OleDbCommandBuilder(da)
    da.Fill(dt)
    bs.DataSource = dt

    DataGridView1.DataSource = bs

End Sub

Private Sub btnAddColumn_Click(sender As System.Object, e As System.EventArgs) Handles btnAddColumn.Click

    con1.Open()
    Dim sqladdcolumn As String = "ALTER TABLE tblContacts ADD COLUMN Extra1 Text"
    Dim cmd As OleDbCommand = New OleDbCommand(sqladdcolumn, con1)

    Try
        cmd.ExecuteNonQuery()
        da.Fill(dt)
        cmd.Dispose()
        con1.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
        con1.Close()
    End Try

End Sub

Private Sub btnDropColumn_Click(sender As System.Object, e As System.EventArgs) Handles btnDropColumn.Click

    con1.Open()
    Dim sqldropcolumn As String = "ALTER TABLE tblContacts DROP COLUMN Extra1 Text"
    Dim cmd As OleDbCommand = New OleDbCommand(sqldropcolumn, con1)

    Try
        cmd.ExecuteNonQuery()
        da.Fill(dt)
        cmd.Dispose()
        con1.Close()
    Catch ex As Exception
        MsgBox(ex.Message)
        con1.Close()
    End Try

End Sub

末級

您需要將數據源重新綁定到gridview。 發生的事情是gridview仍然綁定到仍然具有該列的“較舊”數據源。

Private Sub btnDropColumn_Click(sender As System.Object, e As System.EventArgs) Handles btnDropColumn.Click

con1.Open()
Dim sqldropcolumn As String = "ALTER TABLE tblContacts DROP COLUMN [Extra1 Text]"
Dim cmd As OleDbCommand = New OleDbCommand(sqldropcolumn, con1)

Try
    cmd.ExecuteNonQuery()
    'clear the datatable.
    dt.clear()
    da.Fill(dt)
    cmd.Dispose()
    con1.Close() 
    ' Rebind the datasource of the gridview.        
    DataGridView1.DataSource = dt
    DataGridView1.Refresh()
Catch ex As Exception
    MsgBox(ex.Message)
    con1.Close()
End Try

End Sub

UPDATE更改了查詢字符串。 我認為問題可能出在查詢字符串中。 它試圖刪除的列名稱是Extra1而不是Extra1 Text。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM