none
数据库删除一列DataGridView为何不能及时更新? RRS feed

  • 问题

  • 我通过下面程序删除数据库一列,数据源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 表名 DROP 列名", 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, "表名")
        DataGridViewX2.DataSource = 数据库DataSet.Tables(0)
    
    增加一列我也是这样做的,为何能及时更新呢?怎么删除就不灵了呢?

    永远是一只小菜鸟!


    • 已编辑 震哥 2011年8月23日 8:20 补充问题
    2011年8月23日 7:58

答案

全部回复

  • 我通过下面程序删除数据库一列,数据源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 表名 DROP 列名", 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, "表名")
      DataGridViewX2.DataSource = 数据库DataSet.Tables(0)
    
    增加一列我也是这样做的,为何能及时更新呢?怎么删除就不灵了呢?

    永远是一只小菜鸟!



    你的DataGridView应该是“自动生成列”,不能使用手动的。同时删除列(改变数据库结构之后),重新使用SqlDataAdapter的Fill方法填充DataTable,绑定到DataGridView即可(AutoGenerateColumns=True)
    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月24日 4:23
    版主
  • 刪除怎麼寫的,Code裡沒看到耶?
    coding or not
    2011年8月24日 9:13
  • 刪除怎麼寫的,Code裡沒看到耶?
    coding or not
    Dim cmd As New OleDb.OleDbCommand("alter table 表名 DROP 列名", con)


    永远是一只小菜鸟!
    2011年8月24日 11:04
  • 我通过下面程序删除数据库一列,数据源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 表名 DROP 列名", 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, "表名")
    
     DataGridViewX2.DataSource = 数据库DataSet.Tables(0)
    
    
    增加一列我也是这样做的,为何能及时更新呢?怎么删除就不灵了呢?

    永远是一只小菜鸟!



    你的DataGridView应该是“自动生成列”,不能使用手动的。同时删除列(改变数据库结构之后),重新使用SqlDataAdapter的Fill方法填充DataTable,绑定到DataGridView即可(AutoGenerateColumns=True)
    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    AutoGenerateColumns=True也没用啊           另外我的增加列操作也是这样做的  只是SQL语句不同而已 增加列DataGridView与Access同时更新的 为什么删除列就不行了呢?
    永远是一只小菜鸟!
    2011年8月24日 11:19
  • 楼主,不妨尝试这样做:

     Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, con)

    Dim dt As New DataTable

     da.Fill(dt)

    DataGridViewX2.DataSource = dt

    顺便请检查一下数据库中的那个列是否真正删除了


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月25日 4:31
    版主
  • 不要用强类型

    因为你的“数据库DataSet”始终存在那一列


    http://feiyun0112.cnblogs.com/
    2011年8月26日 7:00
    版主