2016-07-26 6 views
1

私は2つの異なる場所に異なる接続を持つMS Accessデータベースを持っています。最初のデータベースのテーブルからレコードを削除しようとしていますが、2番目のデータベースのテーブルからコピーされた新しいレコードが挿入されていません。最初のデータベースのテーブルは空白のままです。 2番目のデータベースのテーブルに新しいレコードが挿入されたため、2番目のデータベースにはコピーされて挿入されるため、多くのレコードが格納されています。私が望むのは、2番目のデータベースのコピーされたレコードが最初のデータベースに貼り付け/挿入されるということです。異なる接続文字列を使用して、あるテーブルのレコードを別のデータベーステーブルにコピーする方法はありますか?

SQLStr1はこれに私を助けてください最初のデータベース SQLStr2が第二databas

Dim conn As OleDbConnection 
    Dim conn2 As OleDbConnection 

    Dim cmd As OleDbCommand 
    Dim cmd2 As OleDbCommand 
    Dim SQLStr1 As String 
    Dim SQLStr2 As String 

    conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=psipop.accdb;Jet OLEDB:Database Password=cscfo13poppsi;") 
    'I used 'psipop' because the database is located the same with the application. 
    SQLStr1 = "DELETE * FROM pop 'psipop'" 
    conn.Open() 

    cmd = New OleDbCommand(SQLStr1, conn) 
    cmd.ExecuteNonQuery() 

    'I used " & TextBox3.Text & " because the textbox3 contains the path of the another database. 
    conn2 = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= '" & TextBox3.Text & "' ;Jet OLEDB:Database Password=cscfo13poppsi; ") 

    SQLStr2 = "INSERT INTO pop SELECT * FROM pop IN '" & TextBox3.Text & "'" 
    conn2.Open() 
    cmd2 = New OleDbCommand(SQLStr2, conn2) 
    cmd2.ExecuteNonQuery() 

の場所の文字列での位置の文字列です。ありがとうございました。

答えて

0

など。 1つのデータベースからDataTableを移入し、他に行を挿入します

Using sourceConnection As New OleDbConnection("source connection string here"), 
     destinationConnection As New OleDbConnection("source connection string here"), 
     insertCommand As New OleDbCommand("INSERT statement here", destinationConnection), 
     adapter As New OleDbDataAdapter("SELECT statement here", sourceConnection) With {.InsertCommand = insertCommand, 
                         .AcceptChangesDuringFill = False} 
    Dim table As New DataTable 

    adapter.Fill(table) 
    adapter.Update(table) 
End Using 

。適切なパラメータを使用してinsertCommandを設定する必要があります。 AcceptChangesDuringFillプロパティに特に注意してください。DataRowsRowStateAddedであるため、挿入する準備ができています。それがなければ、すべてのRowStateプロパティはUnchangedになり、何も保存されません。

関連する問題