VB.net数据库增加列后,如何在DataGridView上显示更改后的数据表?
我用数据源适配器手动添加的数据源Access数据库,然后与DataGridView绑定,对数据表进行增加列操作,数据表结构发生改变,怎么把改变后的数据表更新到DataGr...
我用数据源适配器手动添加的数据源Access数据库,然后与DataGridView绑定,对数据表进行增加列操作,数据表结构发生改变,怎么把改变后的数据表更新到DataGridView中呢?我的代码如下:
Dim strconn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & System.Windows.Forms.Application.StartupPath & "\数据库.mdb;"
Dim con As New OleDb.OleDbConnection(strconn)
con.Open()
Dim cmd As New OleDb.OleDbCommand("alter table " & "化学 add 备注 String", con)
cmd.ExecuteNonQuery()
con.Close()
Dim sql As String
sql = "select * from 化学" '更新查询
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(数据库DataSet, "化学")
化学指标TableAdapter.Update(数据库DataSet)
DataGridView1.DataSource = 数据库DataSet.Tables(0)
DataGridView1.Refresh()
这样肯定是不行的,虽然Access表结构变了,但是dataGridView没变,我知道手动该怎么改变,就是删除数据库这个数据源,然后重新添加数据源,但是这样是不是太麻烦了,如果这样做的话,用编程该怎么实现呢?菜鸟不懂,希望得到各位高手的指点,谢谢! 展开
Dim strconn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & System.Windows.Forms.Application.StartupPath & "\数据库.mdb;"
Dim con As New OleDb.OleDbConnection(strconn)
con.Open()
Dim cmd As New OleDb.OleDbCommand("alter table " & "化学 add 备注 String", con)
cmd.ExecuteNonQuery()
con.Close()
Dim sql As String
sql = "select * from 化学" '更新查询
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(数据库DataSet, "化学")
化学指标TableAdapter.Update(数据库DataSet)
DataGridView1.DataSource = 数据库DataSet.Tables(0)
DataGridView1.Refresh()
这样肯定是不行的,虽然Access表结构变了,但是dataGridView没变,我知道手动该怎么改变,就是删除数据库这个数据源,然后重新添加数据源,但是这样是不是太麻烦了,如果这样做的话,用编程该怎么实现呢?菜鸟不懂,希望得到各位高手的指点,谢谢! 展开
1个回答
展开全部
一般都是重新绑定数据源,理由很简单,因为在用户A添加一条记录后,可能用户B正好更新了一条数据,重新绑定数据能保证datagridview显示的数据是最合理的
更多追问追答
追问
重新绑定该怎么做呢?我到现在还是很糊涂!以前的数据源是不是要删除?
追答
把下面这段代码封装为一个方法 ,比如叫BindData
Dim sql As String
sql = "select * from 化学" '更新查询
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(数据库DataSet, "化学")
'化学指标TableAdapter.Update(数据库DataSet) 对于查询这句没意义
DataGridView1.DataSource = 数据库DataSet.Tables(0)
DataGridView1.Refresh()
每次增删改结束后调用BindData方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询