VB.net数据库增加列后,如何在DataGridView上显示更改后的数据表?

[复制链接]
查看11 | 回复5 | 2011-8-19 07:20:48 | 显示全部楼层 |阅读模式
我用数据源适配器手动添加的数据源Access数据库,然后与DataGridView绑定,对数据表进行增加列操作,数据表结构发生改变,怎么把改变后的数据表更新到DataGridView中呢?我的代码如下:DimstrconnAsString=\"Provider=Microsoft.Jet.OLEDB.4.0;\"\"DimconAsNewOleDb.OleDbConnection(strconn)con.Open()DimcmdAsNewOleDb.OleDbCommand(\"altertable\"defds123\"化学add备注String\",con)cmd.ExecuteNonQuery()con.Close()DimsqlAsStringsql=\"select*from化学\"\'更新查询DimdaAsOleDb.OleDbDataAdapter=NewOleDb.OleDbDataAdapter(sql,con)da.Fill(数据库DataSet,\"化学\")化学指标TableAdapter.Update(数据库DataSet)DataGridView1.DataSource=数据库DataSet.Tables(0)DataGridView1.Refresh()这样肯定是不行的,虽然Access表结构变了,但是dataGridView没变,我知道手动该怎么改变,就是删除数据库这个数据源,然后重新添加数据源,但是这样是不是太麻烦了,如果这样做的话,用编程该怎么实现呢?菜鸟不懂,希望得到各位高手的指点,谢谢!
回复

使用道具 举报

千问 | 2011-8-19 07:20:48 | 显示全部楼层
一般都是重新绑定数据源,理由很简单,因为在用户A添加一条记录后,可能用户B正好更新了一条数据,重新绑定数据能保证datagridview显示的数据是最合理的追问重新绑定该怎么做呢?我到现在还是很糊涂!以前的数据源是不是要删除?
回复

使用道具 举报

千问 | 2011-8-19 07:20:48 | 显示全部楼层
把下面这段代码封装为一个方法,比如叫BindDataDimsqlAsStringsql=\"select*from化学\"\'更新查询DimdaAsOleDb.OleDbDataAdapter=NewOleDb.OleDbDataAdapter(sql,con)da.Fill(数据库DataSet,\"化学\")\'化学指标TableAdapter.Update(数据库DataSet)对于查询这句没意义DataGridView1.DataSource=数据库DataSet.Tables(0)DataGridView1.Refresh()每次增删改结束后调用BindData方法
回复

使用道具 举报

千问 | 2011-8-19 07:20:48 | 显示全部楼层
还是不行吧我对编程不是太了解我的情况我可能没有给你描述好我想对于改变数据表结构,是不是要删除数据源,然后把改动后的数据库重新添加为数据源绑定呢?不明白?对于增加列这种改变数据表结构我不知道该如何下手?
回复

使用道具 举报

千问 | 2011-8-19 07:20:48 | 显示全部楼层
1.在实际开发中改变数据表结构应该是很慎重的一件事情,而且只可能添加列,不可能删除或者修改列2.只要你原来写的数据操作语句规范,新增列之后不需要删除数据源比如原来你是selectid,namefromtable1数据库新增了一列birthday那么你原来的应用的查询语句可以不修改也是正常的,如果想改也可以
回复

使用道具 举报

千问 | 2011-8-19 07:20:48 | 显示全部楼层
谢谢你的回答
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行