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
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 :-)