Bonjour a tous.
J'ai un probleme, j'arrive pas a recuperer la photo que j'ai mis dans ma base de donnees.
Pour ce j'ai besoin d'aide. Je ou mets le code entier.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
'Imports System.Data
Imports MySql.Data
'Imports System.Data.SqlClient
Imports MySql.Data.MySqlClient
Imports System.IO
Imports System.Drawing.Imaging.ImageFormat
Imports MySql.Data.MySqlClient.MySqlDataReader
 
Public Class Form1
    Dim strCn As String = "server=localhost;" & _
            "Database=test;password= ;User Id=root"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cn As New MySqlConnection(strCn)
        Dim cmd As New MySqlCommand("INSERT INTO blobcenter (blobPict) " & _
            "VALUES (@blobPict)", cn)
        Dim strBLOBFilePath As String = _
            "C:\Users\MICHEL\Desktop\photoCellInfo\image.jpg"
        Dim fsBLOBFile As New FileStream(strBLOBFilePath, _
            FileMode.Open, FileAccess.Read)
        Dim bytBLOBData(fsBLOBFile.Length() - 1) As Byte
        fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length)
        fsBLOBFile.Close()
        Dim prm As New MySqlParameter("@blobPict", MySqlDbType.VarBinary, _
            bytBLOBData.Length, ParameterDirection.Input, False, _
            0, 0, Nothing, DataRowVersion.Current, bytBLOBData)
        cmd.Parameters.Add(prm)
        cn.Open()
        cmd.ExecuteNonQuery()
        cn.Close()
    End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Dim cn As New MySqlConnection(strCn)
        'Dim cmd As New MySqlCommand("SELECT blobId, " & _
        '    "blobPict FROM blobcenter ORDER BY blobId", cn)
        'Dim da As New MySqlDataAdapter(cmd)
        'Dim ds As New DataSet()
        'da.Fill(ds, "blobcenter")
        'Dim c As Integer = ds.Tables("blobcenter").Rows.Count
        'If c > 0 Then
        'Dim bytBLOBData() As Byte = _
        'ds.Tables("blobcenter").Rows(c - 1)("blobPict")
        'Dim stmBLOBData As New MemoryStream(bytBLOBData)
        'PictBlob.Image = Image.FromStream(stmBLOBData) ////(probleme ici)
        'End If
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 'DataReader
        Dim cn As New MySqlConnection(strCn)
        Dim cmd As New MySqlCommand("SELECT blobId, " & _
            "blobPict FROM blobcenter ORDER BY blobId", cn)
        Dim dr As MySqlDataReader
        cn.Open()
        dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
        If dr.Read Then
            Dim bytBLOBData(dr.GetBytes(1, 0, Nothing, 0, Integer.MaxValue) - 1) As Byte
            dr.GetBytes(1, 0, bytBLOBData, 0, bytBLOBData.Length)
            Dim stmBLOBData As New MemoryStream(bytBLOBData)
            PictBlob.Image = Image.FromStream(stmBLOBData)  ////(probleme ici)
        End If
        dr.Close()
    End Sub
End Class

Ca me dit le paramètre n'est pas valide!!!