你數據是讀sqlserver裡面的資料用da.update也是update sqlserver的資料表你可以連接到access,直接insert進去
或者用sql server的dts導出

解决方案 »

  1.   

    我需要的是通过dataset来实现,只是部分表一样,有些是不一样的亚
      

  2.   

    可以使用xml文件作为过渡阿
    ds1.WriteXml()
    ds2.ReadXml()
    这样就可以了
      

  3.   

    pro() :把数据放到dataset不是关键,关键是怎么快速的吧dataset里的数据放到access里亚
      

  4.   

    sql to ole,下面是一个类,基本思路为两个连接、使用commangbuilder和数据适配器(DataAdapter),参考代码:
    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Data.OleDbPublic Class ClsSqlToOle
        Private _tableName As String
        Private _oleCriteria, _sqlCriteria As String    Public Sub New()    End Sub    Public Sub New(ByVal tableName As String, ByVal oleCriteria As String, ByVal sqlCriteria As String)
            _tableName = tableName
            _oleCriteria = oleCriteria
            _sqlCriteria = sqlCriteria
        End Sub    Public Function Execute() As String
            Return Me.Execute(_tableName, _oleCriteria, _sqlCriteria)
        End Function    Public Function Execute(ByVal tableName As String, ByVal oleCriteria As String, ByVal sqlCriteria As String) As String
            Dim sqlConn As New SqlConnection(ClsConnServer.ConnStr)
            Dim oleConn As New OleDbConnection(ClsConnStr.ConnStr)
            Dim sqlAdapter As SqlDataAdapter, oleAdapter As OleDbDataAdapter
            Dim sqlCmdBuilder As SqlCommandBuilder
            Dim oleCmdBuilder As OleDbCommandBuilder
            Dim sqlQry, oleQry As String
            Dim sqlData, oleData As DataSet
            Dim row As DataRow, rowInx As Integer, rowCount As Integer
            Try
                'get updating data ole db
                oleConn.Open()
                oleQry = "select * from " & tableName & Space(1) & oleCriteria
                oleAdapter = New OleDbDataAdapter(oleQry, oleConn)
                oleData = New DataSet()
                oleAdapter.Fill(oleData, tableName)            'builde ins/del command
                oleCmdBuilder = New OleDbCommandBuilder(oleAdapter)
                oleQry = "delete from " & tableName & Space(1) & oleCriteria
                oleAdapter.DeleteCommand = New OleDbCommand(oleQry, oleConn)
                oleAdapter.InsertCommand = oleCmdBuilder.GetInsertCommand            'delete from ole db
                oleAdapter.DeleteCommand.ExecuteNonQuery()
                oleData.Clear()            'rowCount = oleData.Tables(tableName).Rows.Count
                'If rowCount > 0 Then
                '    For rowInx = rowCount - 1 To 0 Step -1
                '        oleData.Tables(tableName).Rows(rowInx).Delete()
                '    Next
                'End If
                'oleAdapter.Update(oleData, tableName)
                'oleData.AcceptChanges()            'get source data from sql db
                sqlConn.Open()
                sqlQry = "select * from " & tableName & Space(1) & sqlCriteria
                sqlAdapter = New SqlDataAdapter(sqlQry, sqlConn)
                sqlData = New DataSet()
                sqlAdapter.Fill(sqlData, tableName)            For Each row In sqlData.Tables(tableName).Rows
                    Dim newRow As DataRow = oleData.Tables(tableName).NewRow
                    Dim col As DataColumn                For Each col In oleData.Tables(tableName).Columns
                        newRow(col.ColumnName) = row(col.ColumnName)
                    Next                oleData.Tables(tableName).Rows.Add(newRow)
                Next            oleAdapter.Update(oleData, tableName)
            Catch e As Exception
                ClsReturnData.strError += ClsDataHelper.GetTableRefName(tableName) & " 数据传输失败." + Chr(13)
            Finally
                sqlConn.Close() : oleConn.Close()
                sqlConn.Dispose() : oleConn.Dispose()
            End Try
        End FunctionEnd Class
      

  5.   

    现在我差不多也这样做For Each col In oleData.Tables(tableName).Columns
         newRow(col.ColumnName) = row(col.ColumnName)
    Next
    ----------------
    如果烈都一样,这句可以改成这样,
    newRow.ItemArray = row .ItemArray
      

  6.   

    最快的方法应该是直接插入
    用Connection连接Access数据库,在用Insert into * from [ODBC;DSN=sqldatacn;UID=sa;PWD=;].dbo.tablename执行
    中间那段代码可以在Access的帮助中找到。