bos ada yang tau atau bisa upload data dari excell ke oracle g?
plisssss
Moderator: trail

elifmails wrote:bos ada yang tau atau bisa upload data dari excell ke oracle g?
plisssss



elifmails wrote:bos ada yang tau atau bisa upload data dari excell ke oracle g?
plisssss

vberror13 wrote:elifmails wrote:bos ada yang tau atau bisa upload data dari excell ke oracle g?
plisssss
Algoritmanya kan sederhana aja, oom:
a. Buka file excel, ambil data yang diinginkan dan simpan sementera di memori. Tutup file excelnya.
b. Buka koneksi ke Oracle, masukkan data yang diambil dari excel tadi, tutup koneksi ke Oracle.
Nah, bagian mana nih yang si oom masih bingung?


Try
If TXTFILEPATH.Text.Trim = "" Then
MsgBox("Cari file terlebih dahulu", MsgBoxStyle.Information, "Pesan kesalahan")
Exit Sub
End If
Dim TempPath, TempFile As String
TempFile = Mid(TXTFILEPATH.Text.Trim, InStrRev(TXTFILEPATH.Text.Trim, "\") + 1, Len(TXTFILEPATH.Text.Trim))
TempPath = Microsoft.VisualBasic.Left(TXTFILEPATH.Text.Trim, (Len(TXTFILEPATH.Text.Trim) - Len(TempFile)))
Dim cmd As OracleCommand = New OracleCommand
cmd.CommandText = "INSERT INTO PESERTA1(KPR,NPP,NIP,NAMA,ALAMAT,KOTA) " & " SELECT * FROM [COBA$=" & TempPath & ";].[" & TempFile.Trim & "]"
cmd.Connection = mycon.open()
cmd.ExecuteNonQuery()
mycon.close()
MsgBox("Import Finish", MsgBoxStyle.Information, "Import")
Catch ex As Exception
MsgBox(ex.Message)
mycon.close()
Exit Sub
End Try
--------------------------------------------------------------------------------------KL Q PKE INI PESAN ERORRNYA "INVALID TABLE NAME"
DAH Q COBA RUBAH2...PESANNYA TETAP SAMA
-------------------------------------------------------------------------------------
Try
Dim MyConnection As System.Data.OracleClient.OracleConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OracleClient.OracleDataAdapter
MyConnection = New System.Data.OracleClient.OracleConnection("user id=elif; password=111111;Data Source='c:\COBA.xls';")
MyCommand = New System.Data.OracleClient.OracleDataAdapter("select * from [COBA$]", MyConnection)
MyCommand.TableMappings.Add("COBA", "EXTENDED")
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
DGV1.DataSource = DtSet.Tables(0)
MyConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
mycon.close()
BLANK()
End Try
---------------------------------------------------------------------------------KL PKE INI PSN ERORNYA "INVALID DRIVER DESIGNATOR"

"INSERT INTO PESERTA1(KPR,NPP,NIP,NAMA,ALAMAT,KOTA) " & " SELECT * FROM [COBA$=" & TempPath & ";].[" & TempFile.Trim & "]"

vberror13 wrote:Terus dari kode tersbut, yang baca file excelnya mana?
query:
- Code: Select all
"INSERT INTO PESERTA1(KPR,NPP,NIP,NAMA,ALAMAT,KOTA) " & " SELECT * FROM [COBA$=" & TempPath & ";].[" & TempFile.Trim & "]"
Itu kan untuk menginsert data ke table Peserta1 dari table "tempPath.TempFile", yang mana table tersebut berasal dari table di Oracle juga.
Karena itu jelas aja terjadi error INVALID TABLE NAME, karena table "temppath.TempFile" itu memang belum ada di databasenya.
Harusnya, baca dulu file Excelnya, dan simpan di memori. Contoh membaca file excel seperti ini: How To Query and Display Excel Data by Using ASP.NET, ADO.NET, and Visual Basic .NET.

Imports System.Data.OleDb
Module Module1
Sub Main()
Console.WriteLine("Full Excel file name:")
Dim excelPath As String = Console.ReadLine()
excelPath = excelPath.Trim()
Dim dataExcel As DataTable = ReadExcelData(excelPath)
If dataExcel Is Nothing Then
Console.WriteLine("Press enter to exit.")
Console.ReadLine()
Exit Sub
End If
InsertToOracle(dataExcel)
Console.WriteLine("Done!")
Console.WriteLine("Press enter to exit.")
Console.ReadLine()
End Sub
Private Function ReadExcelData(ByVal FilePath As String) As DataTable
' Create connection string variable. Modify the "Data Source" parameter as
' appropriate for your environment.
'
Dim objDataset1 As DataSet = Nothing
'for excel <2007
'Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
' & "Data Source=" & FilePath _
' & ";" & "Extended Properties=Excel 8.0;"
'for excel >=2007
Dim sConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & FilePath _
& ";" & "Extended Properties=Excel 12.0;"
' Create the connection object by using the preceding connection string.
Dim objConn As New OleDbConnection(sConnectionString)
Try
' Open connection with the database.
objConn.Open()
' The code to follow uses a SQL SELECT command to display the data from the worksheet.
' Create new OleDbCommand to return data from worksheet.
Dim sqlQuery As String = "SELECT * FROM dataToExport"
Dim objCmdSelect As New OleDbCommand(sqlQuery, objConn)
' Create new OleDbDataAdapter that is used to build a DataSet
' based on the preceding SQL SELECT statement.
Dim objAdapter1 As New OleDbDataAdapter()
' Pass the Select command to the adapter.
objAdapter1.SelectCommand = objCmdSelect
' Create new DataSet to hold information from the worksheet.
objDataset1 = New DataSet
' Fill the DataSet with the information from the worksheet.
objAdapter1.Fill(objDataset1, "XLData")
objAdapter1.Dispose()
Catch ex As Exception
Console.WriteLine("Error ocurred:" & ex.Message)
Finally
If objConn.State = ConnectionState.Open Then
objConn.Close()
End If
End Try
If objDataset1 IsNot Nothing Then
If objDataset1.Tables.Count > 0 Then
Return objDataset1.Tables(0).Copy()
End If
End If
Return Nothing
End Function
Private Function InsertToOracle(ByVal data As DataTable) As Boolean
Dim KPR, NPP As String
For Each r As DataRow In data.Rows
KPR = r(0).ToString()
NPP = r(1).ToString()
''shows data to console
Console.WriteLine(KPR & vbTab & NPP)
''insert query
Dim sqlInsert As String = "INSERT INTO PESERTA1(KPR,NPP,NIP,NAMA,ALAMAT,KOTA) " & _
"VALUES (@KPR,@NPP,@NIP,@NAMA,@ALAMAT,@KOTA)"
Dim dbCommand As New SqlClient.SqlCommand
dbCommand.CommandText = sqlInsert
dbCommand.Parameters.AddWithValue("@KPR", KPR)
'...
'....
dbCommand.ExecuteNonQuery()
Next
Return False
End Function
End Module


Users browsing this forum: No registered users and 1 guest