[英]How can I change the column name from datagridview with access database
[英]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.