I made a program that should move all data i a table form one database to an other.
Everything works well until it reaches row nr 100, then it just stops.
The problem keeps running but nothing happens.
No Error, no nothing. Just stops.
Here is my code for that part:
Imports System.Data.OleDb
Imports System.IO
Public Class Form1
Public ds As New DataSet
Dim da As New OleDbDataAdapter
Public con As New OleDbConnection
Dim sql As String
Dim dt As New DataTable
Dim maxrows As Integer
Public inc As Integer = 0
Public ds2 As New DataSet
Dim da2 As New OleDbDataAdapter
Public con2 As New OleDbConnection
Dim sql2 As String
Dim dt2 As New DataTable
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
BackgroundWorker1.WorkerReportsProgress = True
BackgroundWorker1.WorkerSupportsCancellation = True
Label1.Text = ""
Label2.Text = ""
Label3.Text = ""
Me.TopMost = True
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Label2.Text = "Skapar koppling till databaserna.."
Delay(2)
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\Filmer.mdb"
con.Open()
sql = "SELECT * FROM Film ORDER BY Namn ASC"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "Filmer")
maxrows = ds.Tables("Filmer").Rows.Count
con.Close()
con2.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\Movie.mdb ;Jet OLEDB:Database Password=‚y[Kznj;"
con2.Open()
sql2 = "SELECT*FROM Film"
da2 = New OleDb.OleDbDataAdapter(sql2, con2)
da2.Fill(ds2, "Movies")
con2.Close()
Dim col(1) As DataColumn
ds2.Tables("Movies").Columns(0).AutoIncrement = True
col(0) = ds2.Tables("Movies").Columns(0)
ds2.Tables("Movies").PrimaryKey = col
'Label2.Text = "Koppling har skapats. Flyttning av filmer påbörjas om 3 sekunder!"
'Delay(1)
'Label2.Text = "Koppling har skapats. Flyttning av filmer påbörjas om 2 sekunder!"
'Delay(1)
Label2.Text = "Koppling har skapats. Flyttning av filmer påbörjas om 1 sekunder!"
Delay(1)
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim dsNewRow As DataRow
Dim sqlsearch As String
Dim find As String = "Exempel"
Label2.Text = "Flyttar filmer.."
Dim maxrows2 As Integer
Dim i As Integer = 0
Do Until i = maxrows
da.SelectCommand = New OleDbCommand(sql2, con2)
Dim cb1 As New OleDb.OleDbCommandBuilder(da2)
dsNewRow = ds2.Tables("Movies").NewRow()
Label1.Text = "Flyttar: " & Environment.NewLine & ds.Tables("Filmer").Rows(i).Item(1)
dsNewRow.Item(1) = ds.Tables("Filmer").Rows(i).Item(1)
dsNewRow.Item(2) = ds.Tables("Filmer").Rows(i).Item(2)
dsNewRow.Item(3) = ds.Tables("Filmer").Rows(i).Item(3)
dsNewRow.Item(4) = ds.Tables("Filmer").Rows(i).Item(4)
dsNewRow.Item(5) = ds.Tables("Filmer").Rows(i).Item(5)
dsNewRow.Item(6) = ds.Tables("Filmer").Rows(i).Item(6)
dsNewRow.Item(7) = ds.Tables("Filmer").Rows(i).Item(7)
dsNewRow.Item(8) = ds.Tables("Filmer").Rows(i).Item(8)
dsNewRow.Item(9) = ds.Tables("Filmer").Rows(i).Item(9)
dsNewRow.Item(10) = ds.Tables("Filmer").Rows(i).Item(10)
dsNewRow.Item(11) = ds.Tables("Filmer").Rows(i).Item(11).ToString
dsNewRow.Item(12) = ds.Tables("Filmer").Rows(i).Item(12).ToString
dsNewRow.Item(13) = ds.Tables("Filmer").Rows(i).Item(13).ToString
i += 1
ds2.Tables("Movies").Rows.Add(dsNewRow)
da2.Update(ds2, "Movies")
maxrows2 = ds2.Tables("Movies").Rows.Count
BackgroundWorker1.ReportProgress((maxrows2 / maxrows) * 100)
Label3.Text = maxrows2 - 1 & " st filmer flyttade av " & maxrows & "st"
Loop
Hope someone can find a solution to my problem.
Thanks in advance!
This post has been edited by EndLessMind: 04 January 2011 - 06:45 AM

New Topic/Question
Reply




MultiQuote





|