| |

VB.NET - FortgeschritteneBild aus Datenbank in PictureBox | |  | Autor: nilslueders | Datum: 11.10.04 08:25 |
| Hallo,
ich möchte ein Bild aus der Datenbank in einer PictureBox darstellen. Ich relisiere das, indem ich das Bild aus der Datenbank in einer Datei speicher und dieses dann in einer PictureBox öffne.
Jedoch kommt folgende Fehlermeldung, sobald ich ein zweites Bild aus der Datenbank temporär speichern möchte, und somit die bestehende Datei überschreibe
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen _
Prozess verwendet wird. Ich habe gelesen, dass man die Datei folgendermaßen wieder freigeben muss
System.Drawing.Image.FromStream(fs).Dispose() Das funktionier aber auch nicht. Es kommt die Fehlermeldung
System.ArgumentException: Ungültiger Parameter verwendet.
at System.Drawing.ImageFromStream(Stream stream, Boolean _
useEmbeddedColorManagement)
at System.Drawing.Image.FromStream(Stream stream)
at programmname.Funktionen.OpenPictureFromDB(Int32 BildID, String Speicherort) _
in C:\programmname\Funktionen.vb:line 97 Der vollständige Code sieht folgendermaßen aus:
Public Function OpenPictureFromDB(ByVal BildID As Integer, ByVal _
Speicherort As String)
If Speicherort = "OpenPicture" Then Speicherort = _
Application.StartupPath + "\OpenPicture.tmp"
Dim co As New SqlConnection("workstation id=SQLSERVER;packet" & _
"size=4096;user id=sa;data source=SQLSERVER;persist security" & _
"info=True;initial catalog=DATENBANK;password=xxx")
Dim cmd As New SqlCommand
Dim dr As SqlDataReader
Dim fs As New IO.FileStream(Speicherort, IO.FileMode.Create, _
IO.FileAccess.Write)
Dim buff As Byte()
cmd.Connection = co
cmd.CommandText = "SELECT Bild FROM Bilder WHERE ID=" & BildID
co.Open()
Try
dr = cmd.ExecuteReader(CommandBehavior.Default)
Try
If dr.Read Then
buff = dr("Bild")
fs.Write(buff, 0, buff.Length)
System.Drawing.Image.FromStream(fs).Dispose()
fs.Close()
Else
MsgBox("Es ist kein Datensatz vorhanden mit der ID " & _
BildID)
dr.Close()
co.Close()
End If
Catch ex As Exception
MsgBox(ex.ToString)
Finally
dr.Close()
End Try
Catch ex As Exception
MsgBox(ex.ToString)
Finally
co.Close()
End Try
End Function
Public Function mnu_BildAnsehen()
Dim DS As DataSet = SqlSelect("SELECT * FROM Objekte WHERE ID=" + _
Hauptfenster.LinkListe.FocusedItem.Tag) 'Deklaration eines
' Datensatzes; Auswahl des zu öffnenden Datensatzes
If DS.Tables(0).Rows(0).Item("Bild").ToString = "0" Then
MsgBox("Das ausgewählte Produkt enthält kein Bild", _
MsgBoxStyle.Exclamation, "Achtung")
Else
OpenPictureFromDB(CInt(DS.Tables(0).Rows(0).Item("Bild").ToString), _
"OpenPicture")
Dim FensterBildAnsehen As New BildAnsehen
FensterBildAnsehen.Text = Hauptfenster.LinkListe.FocusedItem.Text
FensterBildAnsehen.BackgroundImage = System.Drawing.Image.FromFile( _
Application.StartupPath + "\OpenPicture.tmp")
FensterBildAnsehen.ShowDialog()
End If
End Function Was mache ich falsch???
N I C H T S - I S T - S O - W I E - E S - S C H E I N T |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|