SQL Bulk Copy AutoMapping in VB.NET

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Denden
    New Member
    • Aug 2014
    • 33

    SQL Bulk Copy AutoMapping in VB.NET

    I have this simple code on VB.NET that inserts data from Excel Spreed Sheet to SQL Server database, now i want the data to be inserted on my database automatically without manually calling the columnmapping.a dd. Basically, i will insert the data base on the header row on the excel spread sheet.

    Here is my code..
    Code:
    Using connection As New OleDbConnection(Excelconnection)
                Dim cmd1 As New OleDbCommand("SELECT * FROM [Sheet1$]", connection)
                connection.Open()
                Dim dr As OleDbDataReader = cmd1.ExecuteReader
                Dim sqlconnection As New SqlConnection(ServerConnectionStringProperty)
                sqlconnection.Open()
                Dim sqlbulkcopy As New SqlBulkCopy(sqlconnection)
                Dim destination As String = txtTableName.Text
                sqlbulkcopy.DestinationTableName = destination
                While dr.Read()
                    sqlbulkcopy.ColumnMappings.Add(0, 13)    
                    sqlbulkcopy.ColumnMappings.Add(1, 14)
                    sqlbulkcopy.ColumnMappings.Add(2, 15)
                    sqlbulkcopy.ColumnMappings.Add(3, 17)
                    sqlbulkcopy.ColumnMappings.Add(4, 26)
                    sqlbulkcopy.ColumnMappings.Add(5, 56)       
                    sqlbulkcopy.ColumnMappings.Add(6, 57)       
                    sqlbulkcopy.ColumnMappings.Add(7, 58)      
                    sqlbulkcopy.ColumnMappings.Add(8, 61)       
                    sqlbulkcopy.ColumnMappings.Add(9, 63)      
                    sqlbulkcopy.ColumnMappings.Add(10, 59)     
                    sqlbulkcopy.ColumnMappings.Add(11, 67)
                    sqlbulkcopy.WriteToServer(dr)
                    Dim rowsCopied As Integer = SqlBulkCopyHelper.GetRowsCopied(sqlbulkcopy)
                    MessageBox.Show(String.Concat(rowsCopied, " rows affected"), "Success")
    
                End While
            End Using
Working...