none
如何通过VB2008代码升级Access数据库设计? RRS feed

  • 问题

  • 很菜的问题,我对用VB2008操作Access还不是很熟悉。
    Access数据库的表结构、表关系等对象,在VB2008是怎么操作和修改的?

    例如在Access1.mdb中新添/删除一个Table,或者添加/删除Table中的列,修改列的各项属性等等

    是不是可以通过DataSet对象加载到内存,直接修改后写回数据库?——这个应该如何实现呢?
    还是需要通过SQL语句来修改?

    请提供个思路,谢谢:)

    2009年2月22日 7:25

答案

  • 你好!
        一般类似于这样处理:

    Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
    Dim adapter As New OleDbDataAdapter()
    adapter.SelectCommand = New OleDbCommand(queryString, connection)
    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

    connection.Open()

    Dim customers As DataSet = New DataSet
    adapter.Fill(customers)

    ' Code to modify data in DataSet here

    adapter.Update(customers)

    Return customers
    End Using
    End Function


    周雪峰
    • 已标记为答案 abcjackson 2009年2月22日 12:56
    2009年2月22日 10:49
    版主

全部回复

  • 你好!
        一般类似于这样处理:

    Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
    Dim adapter As New OleDbDataAdapter()
    adapter.SelectCommand = New OleDbCommand(queryString, connection)
    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

    connection.Open()

    Dim customers As DataSet = New DataSet
    adapter.Fill(customers)

    ' Code to modify data in DataSet here

    adapter.Update(customers)

    Return customers
    End Using
    End Function


    周雪峰
    • 已标记为答案 abcjackson 2009年2月22日 12:56
    2009年2月22日 10:49
    版主
  • 周雪峰 说:

    你好!
        一般类似于这样处理:

    Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
    Dim adapter As New OleDbDataAdapter()
    adapter.SelectCommand = New OleDbCommand(queryString, connection)
    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

    connection.Open()

    Dim customers As DataSet = New DataSet
    adapter.Fill(customers)

    ' Code to modify data in DataSet here

    adapter.Update(customers)

    Return customers
    End Using
    End Function


    周雪峰



    精华之处:
    adapter.Fill(customers)  
    ' Code to modify data in DataSet here  
    adapter.Update(customers) 

    呵呵,我懂了,谢谢
    2009年2月22日 12:56
  • 不客气啊!
    希望对你有帮助! 

    周雪峰
    2009年2月22日 13:11
    版主
  • 我遇到个2个新的疑问了,呵

    Q1:
    代码中的queryString变量是否就是Select语句?
    如果是的话,但是Select似乎无法获取DataBase中有多少个Table,也似乎不能Select all table之类的,那这个语句应该怎么写呢?
    Q2:
    如果在adapter.Fill(customers)之后,我需要在DataSet中添加一个新的Table,并且Updte到数据库中,使得数据库中增加了一个新的Table,是否也是一样运行adapter.Update(customers)就可以?

    谢谢:)
    2009年2月24日 13:18