Hallo Jan,
mit diesem Code geht es bei mir:
Imports System.Data
Imports System.Data.OleDb
Imports System.IO
Public Class bilderspeichern
Public Puffer() As Byte
Public Sub bild_puffern(ByVal strfile As String)
Dim myfilelength As Int64
Dim fs As FileStream = New FileStream(strfile, FileMode.Open)
Dim ms As MemoryStream ' <-------- hier der Stream
Try
myfilelength = fs.Length
ReDim Puffer(myfilelength - 1)
fs.Read(Puffer, 0, myfilelength)
ms = New MemoryStream(Puffer) ' <-------- Stream befüllen
Me.PictureBox1.Image = Image.FromStream(ms) ' <--------- PictureBox
' befüllen
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
fs.Close()
End Sub
Public Sub bildspeichern()
Dim insertsql As String = "INSERT INTO tbl_bilder" & " (BILD, length)" _
& " VALUES (@bild,@length)"
Dim myconn As OleDbConnection
Try
myconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\test.mdb;")
Dim insertcmd As New OleDbCommand(insertsql, myconn)
Dim selectID As New OleDbCommand("SELECT @@IDENTITY", myconn)
insertcmd.Parameters.Add("@bild", OleDbType.Binary).Value = Puffer
insertcmd.Parameters.Add("@length", OleDbType.Integer).Value = _
Puffer.Length
myconn.Open()
insertcmd.ExecuteNonQuery()
MsgBox("Bild erfolgreich mit der ID '" & selectID.ExecuteScalar & _
"'in der Datenbank gespeichert.")
myconn.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim Quelle As String
Quelle = InputBox("Quelldatei", "", "C:\")
Call bild_puffern(Quelle)
Call bildspeichern()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button2.Click
Dim Speicherort As String
Speicherort = InputBox("Speicherort", "", "C:\")
Dim BildID As String
BildID = InputBox("Welches Bild (ID)?", "", "1")
Dim ms As MemoryStream
Dim ws As FileStream = New FileStream(Speicherort, FileMode.Create)
Dim myconn As OleDbConnection
Dim SqlBefehl1 As String
Dim SqlBefehl2 As String
Dim bildLength As Int64
Dim bildsche() As Byte
myconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data" & _
"Source=C:\test.mdb;")
SqlBefehl1 = "Select length from tbl_bilder where id = " & BildID
SqlBefehl2 = "Select bild from tbl_bilder where id = " & BildID
Dim Befehl1 As New OleDbCommand(SqlBefehl1, myconn)
Dim Befehl2 As New OleDbCommand(SqlBefehl2, myconn)
myconn.Open()
bildLength = Befehl1.ExecuteScalar
bildsche = Befehl2.ExecuteScalar
myconn.Close()
ws.Write(bildsche, 0, bildLength)
ms = New MemoryStream(bildsche, 0, bildLength)
Me.PictureBox1.Image = Image.FromStream(ms)
ws.Close()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button3.Click
Dim BildID As String
BildID = InputBox("Welches Bild (ID)?", "", "1")
Dim ms As MemoryStream ' <----------- hier mein Stream
Dim myconn As OleDbConnection
Dim SqlBefehl1 As String
Dim SqlBefehl2 As String
Dim bildLength As Int64
Dim bildsche() As Byte
myconn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data" & _
"Source=C:\test.mdb;")
SqlBefehl1 = "Select length from tbl_bilder where id = " & BildID
SqlBefehl2 = "Select bild from tbl_bilder where id = " & BildID
Dim Befehl1 As New OleDbCommand(SqlBefehl1, myconn)
Dim Befehl2 As New OleDbCommand(SqlBefehl2, myconn)
myconn.Open()
bildLength = Befehl1.ExecuteScalar
bildsche = Befehl2.ExecuteScalar
myconn.Close()
If bildLength = Nothing Then
MsgBox("Kein Treffer")
Exit Sub
End If
ms = New MemoryStream(bildsche, 0, bildLength) ' <-------- da den
' Stream 'vollmachen'
Me.PictureBox1.Image = Image.FromStream(ms) ' <--------- Bild in
' PictureBox laden
End Sub
End Class ---> weiter zu Teil 2 weil Nachricht zu groß
________________________________________________________
K?pt'n Blauber: "Ein B?r braucht seine Geheimnisse."
Beitrag wurde zuletzt am 07.03.09 um 20:26:53 editiert. |