I looked around everywhere and we stucked (Since 2 days we are googleing, so pls dont "lmgty"). We want to Convert an image to byte[], in c#.NET, found this method:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
It says: Thrown: "Cannot access a closed Stream." (System.ObjectDisposedException) Exception Message = "Cannot access a closed Stream.", Exception Type = "System.ObjectDisposedException"
For fixing it i tryed:
ms.Flush();
Our goal is to save the byte[] into the database. We also tried this:
var parameter = new SqlParameter("@Value", SqlDbType.Image)
{
Value = Image
};
cmd.Parameters.Add(parameter);
It says that Bitmap to Byte[] has failed. The whole insterting command is:
private void CreateEntry()
{
var conn = new SqlConnection(ConfigurationManager.ConnectionStrings[Connectionstring].ConnectionString);
var cmd = new SqlCommand("INSERT INTO _FH_Picture ID, Value, BindItem, Owner, McItemRelated, UploadTime VALUES @ID, @Value, @BindItem, @Owner, @McItemRelated, @UploadTime", conn) { CommandType = CommandType.Text };
cmd.Parameters.AddWithValue("@ID", ID.ToString());
cmd.Parameters.AddWithValue("@Value", imageToByteArray(value));
cmd.Parameters.AddWithValue("@Owner", _owner);
cmd.Parameters.AddWithValue("@BindItem", _bindtitem);
cmd.Parameters.AddWithValue("@McItemRelated", _mcitemrelated);
cmd.Parameters.AddWithValue("@UploadTime", _uploadtime);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}