2013-08-03 82 views
0

我試圖將一個新產品插入到product表中,其中一列是圖像。這是我的代碼:使用C插入圖像到SQL Server 2008表#

private void pictureBox1_Click(object sender, EventArgs e) 
{ 
     OpenFileDialog dlg = new OpenFileDialog(); 
     dlg.Title = "Open Image"; 
     dlg.Filter = "bmp files (*.bmp)|*.bmp"; 

     if (dlg.ShowDialog() == DialogResult.OK) 
     { 
      pictureBox1.Image = Image.FromFile(dlg.FileName); 
      ImageToByte(pictureBox1.Image); 
     } 

     dlg.Dispose(); 
    } 

    public static byte[] ImageToByte(Image img) 
    { 
     ImageConverter converter = new ImageConverter(); 
     return (byte[])converter.ConvertTo(img, typeof(byte[])); 
    } 

我得到這個錯誤:

未能參數值從位圖轉換爲一個byte []。

我該如何解決?

感謝

回答

0

圖像保存到內存流,然後將其轉換爲字節數組:

private byte[] ImageToByte(System.Drawing.Image imageToConvert, 
                System.Drawing.Imaging.ImageFormat formatOfImage) 
      { 
       byte[] Ret; 
       try 
       { 
        using (MemoryStream ms = new MemoryStream()) 
        { 
         imageToConvert.Save(ms, formatOfImage); 
         Ret = ms.ToArray(); 
        } 
       } 
       catch (Exception) { throw; } 
       return Ret; 
      } 

用法示例爲位圖你的情況

ImageToByte([your image here], System.Drawing.Imaging.ImageFormat.Bmp); 
+0

我仍然得到該錯誤,任何想法爲什麼? – user2023203

0

你可以做它通過以下方式:

public static byte[] ToByteArray(this Image image, ImageFormat format) 
{ 
    using(MemoryStream ms = new MemoryStream()) 
    { 
     image.Save(ms, format); 
     return ms.ToArray(); 
    } 
} 

並使用此:

var image = yourImageFromPictureBox; 
byte[] arr = image.ToByteArray(ImageFormat.Bmp); 
+0

我仍然得到這個錯誤,爲什麼? – user2023203

相關問題