Laman

Senin, 25 November 2013

Cara Insert dan Update File Image ke Database Oracle dengan VB.Net


Tanpa basa-basi.
Langkah pertama.
Buat table di database oracle. Bisa pake sql*plus bisa pake toad end pake apa aja boleh yg penting bisa bikin table.

CREATE TABLE DOK_ANGKAT_ANAK
(
  ANAK_NO    VARCHAR2(25 CHAR),
  FOTO       BLOB,
  TGL_INPUT  DATE,
  ID         VARCHAR2(24 CHAR)                  NOT NULL,
  BANTU      INTEGER                            DEFAULT 1
);

Langkah kedua
buat form baru di project loe, tools yang dipake diantaranya : picturebox, dua buah button, empat buah textbox. Setting sendiri terserah gimana bagusnya tampilannya. masuk ke view code.
Kurang lebih begini syntaxnya:

Imports System.Data
Imports System.Data.OleDb
Imports System.IO

Public Class FrmInputAngkatAnak


Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click

       Try
            Dim cnn As New OleDb.OleDbConnection("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=usermu;Password=passwordmu;Data Source=dbmu;")
            Dim cmnd As New OleDb.OleDbCommand
            cmnd.Connection = cnn
            Dim imgf As FileStream
            imgf = New FileStream(Pbox.ImageLocation, IO.FileMode.Open, IO.FileAccess.Read)
            Dim ImageData As Byte()
            ReDim ImageData(imgf.Length)
            'Read block of bytes from stream into th
            '//     e byte array
            imgf.Read(ImageData, 0, System.Convert.ToInt32(imgf.Length))
            '//     'Close the File Stream
            imgf.Close()
            cmnd.Connection = cnn
            cmnd.CommandText = "INSERT INTO DOK_ANGKAT_ANAK VALUES (" & txtNoReg.Text & ",:BLOBDB,:TGL_INPUT,:ID,:BANTU)"
            cmnd.CommandType = CommandType.Text
            Dim param As New OleDb.OleDbParameter
            param.Direction = ParameterDirection.Input
            cmnd.Parameters.AddWithValue("BLOBDB", ImageData)
            cmnd.Parameters.Add("TGL_INPUT", OleDb.OleDbType.Date).Value = txtTglInput.Text
            cmnd.Parameters.AddWithValue("ID", txtOperator.Text)
            cmnd.Parameters.AddWithValue("BANTU", lblBantu.Text)
            param.Value = ImageData
            cnn.Open()
            Try
                cmnd.ExecuteNonQuery()
                MessageBox.Show("Data Baru telah disimpan..!!", _
                            "Penyimpanan Sukses", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Information)
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            cnn.Close()
        Catch ex As Exception
        End Try
End Sub




Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        Try
            Dim cnn As New OleDb.OleDbConnection("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=usermu;Password=passwordmu;Data Source=dbmu;")
            Dim cmnd As New OleDb.OleDbCommand
            Dim param As New OleDb.OleDbParameter
            cmnd.Connection = cnn
            Dim imgf As FileStream
            imgf = New FileStream(Pbox.ImageLocation, IO.FileMode.Open, IO.FileAccess.Read)
            Dim ImageData As Byte()
            ReDim ImageData(imgf.Length)
            'Read block of bytes from stream into th
            '//     e byte array
            imgf.Read(ImageData, 0, System.Convert.ToInt32(imgf.Length))
            '//     'Close the File Stream
            imgf.Close()
            cmnd.Connection = cnn
            cmnd.CommandText = "UPDATE DOK_ANGKAT_ANAK SET FOTO=:BLOBDB WHERE ANAK_NO='" & txtNoReg.Text & "'"
            cmnd.CommandType = CommandType.Text
            cmnd.Parameters.AddWithValue("BLOBDB", ImageData)
            param.Direction = ParameterDirection.Input
            param.Value = ImageData
            cnn.Open()
            Try
                cmnd.ExecuteNonQuery()
                MessageBox.Show("Data File telah diperbaharui..!!", _
                            "Penyimpanan Sukses", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Information)
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            cnn.Close()
            Status = True
            Call Pengaturan()
            Call Kosongkan()
        Catch ex As Exception
        End Try
    End Sub





Private Sub btnLiat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLiat.Click
Try
            Dim cnn As New OleDb.OleDbConnection("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=usermu;Password=passwordmu;Data Source=dbmu;")
            Dim cmnd As New OleDb.OleDbCommand
            cmnd.Connection = cnn
            Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM DOK_ANGKAT_ANAK WHERE ANAK_NO=" & txtNoReg.Text, cnn)
            Dim ds As New DataSet("DOK_ANGKAT_ANAK")
            da.Fill(ds, "DOK_ANGKAT_ANAK")
            If ds.Tables(0).Rows.Count > 0 Then
                txtNoReg.Text = ds.Tables(0).Rows(0).Item(0)
                Dim bytBLOBData() As Byte = ds.Tables(0).Rows(0)("FOTO")
                Dim stmBLOBData As New System.IO.MemoryStream(bytBLOBData)
                Pbox.Image = System.Drawing.Image.FromStream(stmBLOBData)
                stmBLOBData.Close()
            End If
            cnn.Close()
        Catch ex As Exception
        End Try
        Set_Gambar.Enabled = True
    End Sub


End Class

Selamat Mencoba


 

Tidak ada komentar:

Posting Komentar