I am writing an application that is doing a file conversion.

I created a new process in order to run an exe and pass it some arguments in order to do the file conversion. I ran this in the Submit button click event.

I added an event handler for when the Process had exited and then continued my code, since I had to wait for the file conversion to complete before continuing.

Everything is running fine now up until the point where I am trying to call a FillBy for one of my datasets. My fill by is accepting a parameter UserID and filling it based on the user id, which is selected in a combo box in the program itself.

I keep getting exceptions and it immediately exits the program whenever I try and use this fillby method, if I take it out it completes successfully; however, the new row I just inserted was not added.

I tried adding a tryparse for the value selected from the UserID combobox but I get this cross-thread exception, so I have a feeling the 2 are related.

Any ideas what I should do? Here is what I have thus far:
My btn click event
Code:
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        If txtFileDesc.Text <> String.Empty Or txtFileDesc.Text <> "" Then
            If File.Exists(txtFileLoc.Text) Then
                Dim extension As String
                Dim extensionPos As Integer
                Dim filePos As Integer

                extension = txtFileLoc.Text
                extensionPos = extension.LastIndexOf(".")
                extension = extension.Remove(0, extensionPos)

                kmlFileName = txtFileLoc.Text.Replace(extension, ".kml")
                kmzFileName = txtFileLoc.Text.Replace(extension, ".kmz")
                shpFileName = txtFileLoc.Text.Replace(extension, ".shp")

                filePos = txtFileLoc.Text.LastIndexOf("\")
                filePos = filePos + 1
                fileName = txtFileLoc.Text.Remove(0, filePos)

                If extension = ".kmz" Then
                    Upload()
                    UpdateDS()

                ElseIf extension = ".kml" Then
                    If System.IO.File.Exists(kmzFileName) Then
                        If MessageBox.Show(String.Format("The file you have specified {" + kmzFileName + "} already exists.  Do you want to overwrite this file?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) = DialogResult.Yes Then
                            System.IO.File.Delete(kmlFileName)
                        Else
                            Return
                        End If
                    End If
                    GenerateZipFile()

                ElseIf extension = ".shp" Then
                    ToolStripStatusLabel.Text = statusKML
                    Dim ogrDirectory As String
                    ogrDirectory = Application.StartupPath + "\ogr"
                    ogrDirectory = "C:\Program Files (x86)\EMTRAC\User GISMap Management Application Install\ogr\"

                    With conversionProc
                        .EnableRaisingEvents = True
                        .StartInfo.WorkingDirectory = ogrDirectory
                        .StartInfo.FileName = "ogr2ogr.exe"
                        .StartInfo.Arguments = "-f KML " + kmlFileName + " " + shpFileName
                        .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                    End With
                    conversionProc.Start()
                Else
                    Return
                End If

            End If
        End If
    End Sub
My Code to generate a zip file:
Code:
Sub GenerateZipFile()
        ToolStripStatusLabel.Text = statusZip
        Dim zip As New ZipFile
        zip.AddItem(kmlFileName)
        zip.Save(kmzFileName)
        kmzCreated = True

        Upload()
        UpdateDS()

    End Sub
My Code to Upload the zipped file:
Code:
Sub Upload()
        ToolStripStatusLabel.Text = statusUpload
        Dim uploadFileURL As String
        Dim uploadClient As New System.Net.WebClient

        uploadFileURL = ftpURL + fileName

        uploadClient.Credentials = New System.Net.NetworkCredential("ommitted", "ommitted")

        uploadClient.UploadFile(uploadFileURL, kmzFileName)

        uploadFileName = uploadFileURL.Replace("ftp://ftp", "http://www")

        CleanUp()
    End Sub
My code to update my dataset
Code:
Sub UpdateDS()
        Dim sqlConnection As New System.Data.SqlClient.SqlConnection()
        Dim strCommand As String

        sqlConnection.ConnectionString = My.Settings.EMTRACKMLConnectionString
        strCommand = "INSERT INTO KMLUSERFILES (USER_ID, FILE_DESCRIPTION, FILE_LOCATION) VALUES (@userID, @fileDesc, @fileLocation)"

        Dim sqlCommand As New System.Data.SqlClient.SqlCommand(strCommand, sqlConnection)
        sqlCommand.Parameters.AddWithValue("@userID", UserID)
        sqlCommand.Parameters.AddWithValue("@fileDesc", txtFileDesc.Text)
        sqlCommand.Parameters.AddWithValue("@fileLocation", uploadFileName)

        sqlConnection.Open()
        sqlCommand.ExecuteNonQuery()
        sqlConnection.Close()

        Dim tValue As Boolean
        Dim tUserID As Long

        tValue = Long.TryParse(cmbUserID.SelectedText, tUserID)
        If tValue = True Then
            Me.KMLUSERFILESTableAdapter.FillBy(Me.EMTRACKMLDataSet.KMLUSERFILES, tUserID)
        End If
    End Sub
My Code where I declare the process:
Code:
Private WithEvents conversionProc As New System.Diagnostics.Process
My Code where I handle the Exit event of the process
Code:
Private Sub conversionProc_Exited(ByVal sender As Object, ByVal e As System.EventArgs) Handles conversionProc.Exited

        kmlCreated = True

        GenerateZipFile()
    End Sub
I have tried just skipping reading the value from the combo box for the userid as I have it stored already through the code. But I end up with the same error happening giving me something about Index 0 is not valid or something along those lines. I have values already in my table, the index starts at 0 and increments automatically by 1. I have the start seed at 0 and the increment set for 1 for the Index in my data set. Any ideas?