Selasa, 06 Oktober 2020

Vb.Net Mysql: Import Data Dari Excel - Part 1

Bagaimana cara import data dari excel ke database MySQL dengan memakai VB.NET? Bicara ihwal import data dari excel dengan database apapunnya, gampang-gampang sulit. Kita bisa bilang gampang kan klo udah tau cara/solusinya hehe... Catatan penting : yang jadi rawan error adalah validasi data. Bentuk dan isi data excel mesti sungguh-sungguh sesuai, klo ngga yaaaa error. Lebih lanjut tentang validasi belakangan aja yah. Rani juga anggap readers udah paham wacana VB.NET & MySQL, jadi tau apa aja yang mesti add reference dll. Klo belum baca dulu Tutorial nya yah. Nah bahasan disini Rani batasi dengan perkiraan keadaan data excel valid dan sesuai. Berikut struktur tabel tblKaryawan beserta isinya sebelum proses import. Atur UI mirip gambar berikut: TextBox1 dipakai untuk menyimpan path dan nama file excel yang hendak digunakan, Button1 untuk browse file, dan Button 2 untuk proses import. ListBox1 untuk menyimpan nama-nama sheet. Label1 keterangan data excel dan Label2 untuk informasi data MySQL. DataGridView1 untuk memperlihatkan data tabel dari excel sementara DataGridView2 untuk memperlihatkan data dari MySQL. Selesai dengan UI, lanjut ke Code. Pertama Import Class yang dipakai. Imports System.IO   Imports System.Data   Imports System.Data.OleDb   Imports MySql.Data.MySqlClient Kemudian deklarasikan object data untuk digunakan di Class frmImportExcel. Dim conn As New MySqlConnection   Dim strConn As String = "server=localhost;user id=root;" & _                         "password=xxxx;database=latihan"   Dim tblImport As DataTable Sub Procedure berikut untuk menampilkan data dari tabel MySQL. Sub MySQLDataLoad()     Dim myCommand As New MySqlCommand     Dim myAdapter As New MySqlDataAdapter     Dim myData As New DataTable     Dim SQL As String     Try         conn.Open()         SQL = "Select nik, nama From tblkaryawan"         myCommand.Connection = conn         myCommand.CommandText = SQL         myAdapter.SelectCommand = myCommand         myAdapter.Fill(myData)         DataGridView2.DataSource = myData         conn.Close()     Catch myerror As MySqlException         MessageBox.Show( "Error: " & myerror.Message)     Finally         conn.Dispose()     End Try End Sub Sub procedure di atas akan diundang di event Form_Load. Event ini juga memuat pengaturan connection string dan beberapa pengaturan property UI. Private Sub frmImportExcel_Load( ByVal sender As System.Object, _     ByVal e As System.EventArgs) Handles MyBase.Load     TextBox1.ReadOnly = True     Button1.Text = "Browse..."     Button2.Enabled = False     Button2.Text = "Import"     Label1.Text = "Data Excel"     Label2.Text = "Data MySQL"     With DataGridView1         .AllowUserToDeleteRows = False         .AllowUserToAddRows = False         .ReadOnly = True     End With     With DataGridView2         .AllowUserToDeleteRows = False         .AllowUserToAddRows = False         .ReadOnly = True     End With     conn.ConnectionString = strConn     MySQLDataLoad()   End Sub Kemudian kita siapkan juga 2 buah procedure untuk memperlihatkan data excel, termasuk opsi sheet dan isi tabel. Isi tabel excel akan disimpan dalam object DataTable dengan nama tblImport . 'Untuk memperlihatkan data sheet di grid Sub LoadExcel2Grid( ByVal FileName As String, ByVal SheetName As String )     Dim exConn As OleDbConnection     Dim dt As DataSet     Dim cmd As OleDbDataAdapter     Dim sConn As String     sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _             FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"     exConn = New System.Data.OleDb.OleDbConnection(sConn)     cmd = New System.Data.OleDb.OleDbDataAdapter( _           "select * from [" & SheetName & "]" , exConn)     cmd.TableMappings.Add("Table", SheetName)     dt = New System.Data.DataSet     cmd.Fill(dt)     tblImport = dt.Tables(0)     DataGridView1.DataSource = tblImport     exConn.Close() End Sub   'Untuk memperlihatkan nama sheet di listbox Sub GetExcelSheetNames( ByVal FileName As String )     Dim sConn As String     sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _             FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"     Dim conn As New OleDbConnection(sConn)     conn.Open()     Dim dtSheets As DataTable = _     conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing )     Dim drSheet As DataRow     ListBox1.Items.Clear()     For Each drSheet In dtSheets.Rows         ListBox1.Items.Add(drSheet( "TABLE_NAME" ).ToString())     Next     LoadExcel2Grid(FileName, ListBox1.Items(0).ToString)     conn.Close()   End Sub Lanjut di Part 2 ... Click here if you like this article.
Sumber http://rani-irsan.blogspot.com


EmoticonEmoticon

:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:o
:>)
(o)
:p
:-?
(p)
:-s
8-)
:-t
:-b
b-(
(y)
x-)
(h)