2009-09-09 7 views

Répondre

4

faire un peu googler avant de poster ici. Voici le troisième résultat de recherche que j'ai obtenu pour votre requête. Je sais comment faire cela, mais pas assez de patience pour le refaire. Voici donc un exemple de code d'TechArena

Function SaveImage _ 
    (ByVal FileName As String) As Integer 

    ' Create a FileInfo instance 
    ' to retrieve the files information 
    Dim fi As New FileInfo(FileName) 

    ' Open the Image file for Read 
    Dim imgStream As Stream = _ 
     fi.OpenRead 

    ' Create a Byte array the size 
    ' of the image file for the Read 
    ' methods buffer() byte array 
    Dim imgData(imgStream.Length) As Byte 
    imgStream.Read(imgData, 0, fi.Length) 

    Dim cn As New SqlConnection _ 
     (ConfigurationSettings.AppSettings("cn")) 
    Dim cmd As New SqlCommand("Images_ins", cn) 
    cmd.CommandType = CommandType.StoredProcedure 

    With cmd.Parameters 
     .Add("@FileName", VarChar, 100).Value = _ 
     fi.Name 
     .Add("@FileType", VarChar, 10).Value = + 
     fi.Extension 
     .Add("@Image", Image).Value = imgData 
     .Add("@FileSize", Int, 4).Value = fi.Length 
    End With 

    cn.Open() 
    cmd.ExecuteNonQuery() 
    cn.Close() 
    cn.Dispose() 
End Function 
1

Le champ d'image dans SQL Server est simplement un tableau d'octets. Voici le code significatif dont vous aurez besoin. Supposons que le nom de votre champ d'image dans la base de données est "imageField". J'espère que cela t'aides.

Pour récupérer une image et l'enregistrer sur le disque:

//dr is a DataReader returned from a SELECT command 
Dim imageInBytes As Byte() = dr("imagefield") 
Dim memoryStream As System.IO.MemoryStream = _ 
    New System.IO.MemoryStream(imageInBytes, False) 
Dim image As System.Drawing.Image = _ 
    System.Drawing.Image.FromStream(memoryStream) 
image.Save("c:\image") 

Pour enregistrer une image dans SQL Server à partir du disque:

''Get the image file into a Byte Array 
Dim image As Byte() = System.IO.File.ReadAllBytes("c:\image.jpg") 
''Add the byte array as a parameter to your Insert/Update SQLCommand 
parameters.Add("@ImageField", image) 
Questions connexes