Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VB.NET Snimanje slike u access bazu

[es] :: .NET :: .NET Desktop razvoj :: VB.NET Snimanje slike u access bazu

[ Pregleda: 1744 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BackoSoft

Član broj: 205353
Poruke: 35
208.84.234.*



Profil

icon VB.NET Snimanje slike u access bazu06.01.2012. u 19:01 - pre 97 meseci
Napravio sam formu sa picture box-om i dva gumba. save i dodaj sliku, tu imam i combo box sa kojim vrsim pretragu po rednom broju iz baze.

Medutim imam problem sto kod nece da radi. u cemu je problem.


Code:
Imports System.IO
Imports System.Text
Imports System.Data.OleDb
Imports System.ComponentModel
Imports Microsoft.VisualBasic.CompilerServices
Imports System.Runtime.CompilerServices






Public Class Form1


    Private img As Image


    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
        Dim builder As New StringBuilder
        builder.Append(ObjectType.StrCatObj("DELETE FROM images WHERE imageId = ", Me.cmbImgIds.SelectedItem))
         If New Connection().doInsertData(builder.ToString) Then
        Interaction.MsgBox("The image is Deleted successfully", 0, Nothing)
        Me.picBox.Image = Nothing
        Me.getListOfImages()
         End If

    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        Dim command As OleDbCommand
        Dim connection As OleDbConnection
        Dim stream As New FileStream(Me.imgFile.FileName, FileMode.Open, FileAccess.Read)
        Try
            Dim cmdText As String = "insert into images([image]) VALUES(?)"
            connection = New OleDbConnection(StringType.FromObject(New Connection().getConnectionString))
            connection.Open()
            command = New OleDbCommand(cmdText, connection)
            Dim array As Byte() = New Byte((CInt((stream.Length - 1)) + 1) - 1) {}
            stream.Read(array, 0, array.Length)
            stream.Close()
            Dim parameter As New OleDbParameter("@Picture", OleDbType.LongVarBinary, array.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current, array)
            command.Parameters.Add(parameter)
            command.ExecuteNonQuery()
            Interaction.MsgBox("Image is saved successfully to the Database", 0, "Successfully Saved")
            Me.getListOfImages()
            Me.btnSave.Enabled = False
        Catch exception1 As Exception
            ProjectData.SetProjectError(exception1)
            Dim exception As Exception = exception1
            Interaction.MsgBox(("Error : " & exception.Message), 0, "Error Occured")
            ProjectData.ClearProjectError()
        Finally
            connection = Nothing
            command = Nothing
        End Try


    End Sub

    Private Sub cmbImgIds_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbImgIds.SelectedIndexChanged
        Dim stream As MemoryStream
        Me.btnDelete.Enabled = False
        Dim builder As New StringBuilder
        Dim table As New DataTable
        builder.Append(ObjectType.StrCatObj("SELECT image FROM images WHERE imageId = ", Me.cmbImgIds.SelectedItem))
            table = New Connection().doDBconnection(builder.ToString, "Image")
        Dim row As DataRow
        For Each row In table.Rows
            Me.btnDelete.Enabled = True
            Dim buffer As Byte() = DirectCast(row.Item("image"), Byte())
            stream = New MemoryStream(buffer)
        Next
        Me.picBox.Image = Image.FromStream(stream)


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.getListOfImages()
        Me.btnDelete.Enabled = False

    End Sub
    Public Sub getListOfImages()
        Dim enumerator As IEnumerator
        Dim builder As New StringBuilder
        Dim table As New DataTable
        builder.Append("SELECT imageId FROM images")
        table = New Connection().doDBconnection(builder.ToString, "ImageId")
        Me.cmbImgIds.Items.Clear()
        If (table.Rows.Count = 0) Then
            Me.btnDelete.Enabled = False
        End If
        Try
            enumerator = table.Rows.GetEnumerator
            Do While enumerator.MoveNext
                Dim current As DataRow = DirectCast(enumerator.Current, DataRow)
                Me.cmbImgIds.Items.Add(RuntimeHelpers.GetObjectValue(current.Item("imageId")))
            Loop
        Finally
            If TypeOf enumerator Is IDisposable Then
                DirectCast(enumerator, IDisposable).Dispose()
            End If
        End Try

    End Sub


    Private Sub imgFile_FileOk(ByVal sender As Object, ByVal e As CancelEventArgs)
        Try
            Me.img = Image.FromFile(Me.imgFile.FileName)
            Me.btnSave.Enabled = True
            Me.btnSave.Focus()
            Me.picBox.Image = Me.img
        Catch exception1 As Exception
            ProjectData.SetProjectError(exception1)
            Dim exception As Exception = exception1
            If (Strings.InStr(Strings.UCase(exception.Message), Strings.UCase("Out of memory"), 0) > 0) Then
                Interaction.MsgBox("Please select images only", 0, "Error Occured")
            End If
            ProjectData.ClearProjectError()
        End Try
    End Sub





    Private Sub btndodaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndodaj.Click
        Me.btnDelete.Enabled = False
        Me.imgFile.ShowDialog()

    End Sub
    Public Function doDBconnection(ByVal sQuery As String, ByVal DataTableName As String) As DataTable
        Dim table As DataTable
        Dim command As OleDbCommand
        Dim connection As OleDbConnection
        Dim dataSet As New DataSet

        Try
            connection = New OleDbConnection(StringType.FromObject(Me.getConnectionString))
            command = New OleDbCommand(sQuery, connection)
             New OleDbDataAdapter(command).Fill(dataSet, DataTableName)
            table = dataSet.Tables.Item(DataTableName)
        Catch exception1 As Exception
            ProjectData.SetProjectError(exception1)
            Dim exception As Exception = exception1
            Interaction.MsgBox(("Error Occured : " & exception.Message), 0, "Naslov Poruke")
            ProjectData.ClearProjectError()
        Finally
            connection = Nothing
            command = Nothing
        End Try
        Return table

    End Function

    Public Function doInsertData(ByVal sInsertQuery As String) As Boolean
        Dim message As String
        Dim connection As OleDbConnection
        Try
            message = ""
            connection = New OleDbConnection(StringType.FromObject(Me.getConnectionString))
            connection.Open()
            New OleDbCommand(sInsertQuery, connection).ExecuteNonQuery
        Catch exception1 As Exception
            ProjectData.SetProjectError(exception1)
            Dim exception As Exception = exception1
            message = exception.Message
            Interaction.MsgBox(("Error : " & message), 0, "Mindfire Solutions")
            ProjectData.ClearProjectError()
        Finally
            connection = Nothing
        End Try
        Return (StringType.StrCmp(Strings.Trim(message), "", False) = 0)

    End Function
    Public Function getConnectionString() As Object
        Return ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " & Application.StartupPath & "\image.mdb; User Id=admin; Password=")
    End Function
End Class

Hello :-)
 
Odgovor na temu

BackoSoft

Član broj: 205353
Poruke: 35
208.84.234.*



Profil

icon Re: VB.NET Snimanje slike u access bazu06.01.2012. u 22:18 - pre 97 meseci
Rjeseno---
Hello :-)
 
Odgovor na temu

ventura

Član broj: 32
Poruke: 7781
*.adsl.verat.net.



+6454 Profil

icon Re: VB.NET Snimanje slike u access bazu06.01.2012. u 22:32 - pre 97 meseci
Kulturno je da napišeš rešenje problema, ako si već umeo da postaviš pitanje.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: VB.NET Snimanje slike u access bazu

[ Pregleda: 1744 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.