图片到ByteArray封闭流c#

时间:2013-08-14 08:45:14

标签: c# .net image memory stream

我四处张望,我们坚持了(因为2天我们正在google,所以请不要“lmgty”)。我们想将图像转换为byte [],在c#.NET中,找到了这个方法:

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}

它说: 抛出:“无法访问封闭的流。” (System.ObjectDisposedException)异常消息=“无法访问已关闭的流。”,Exception Type =“System.ObjectDisposedException”

为了修理它,我尝试了:

ms.Flush();

我们的目标是将byte []保存到数据库中。我们也试过这个:

var parameter = new SqlParameter("@Value", SqlDbType.Image)
{
Value = Image            
};
cmd.Parameters.Add(parameter);

它说Bitmap to Byte []失败了。 整个insterting命令是:

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();
}

0 个答案:

没有答案