2014-09-19 125 views
0

如何檢索圖像到C#winforms中的圖片框?我試過這段代碼,但我有一個參數異常,說該參數在我的位圖中是無效的。從c#winforms中的數據庫檢索圖像到圖片框

con = new SqlConnection(strConnection); 

     MemoryStream stream = new MemoryStream(); 
     con.Open(); 
     SqlCommand command = new SqlCommand(
        "select companyLogo from companyDetailsTbl where companyId = 1", con); 
     byte[] image = (byte[])command.ExecuteScalar(); 
     stream.Write(image, 0, image.Length); 
     con.Close(); 
     Bitmap bitmap = new Bitmap(stream); //This is the error 
     return bitmap; 

回答

2

一個更好的辦法來做到這一點:

using (SqlConnection con = new SqlConnection(strConnection)) 
using (SqlCommand cmd = new SqlCommand("select companyLogo from companyDetailsTbl where companyId = 1", con)) 
{ 
    con.Open(); 
    using (SqlDataReader reader = cmd.ExecuteReader()) 
    { 
     if (reader.HasRows) 
     { 
      reader.Read(); 
      pictureBox1.Image = ByteArrayToImage((byte[])(reader.GetValue(0))); 
     } 
    } 
} 

public static Image ByteArrayToImage(byte[] byteArrayIn) 
{ 
    using (MemoryStream ms = new MemoryStream(byteArrayIn)) 
    { 
     Image returnImage = Image.FromStream(ms); 
     return returnImage; 
    } 
} 
1

嘗試使用這樣的:

byte[] image = (byte[])command.ExecuteScalar(); 
TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap)); 
Bitmap bitmap = (Bitmap)tc.ConvertFrom(image); 

或者:

byte[] image = (byte[])command.ExecuteScalar(); 
ImageConverter ic = new ImageConverter(); 
Image img = (Image)ic.ConvertFrom(image); 
Bitmap bitmap = new Bitmap(img); 
相關問題