我环顾四周,我们卡住了(因为我们在谷歌搜索 2 天,所以请不要“lmgty”)。我们想将图像转换为字节[],在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)异常消息=“无法访问关闭的流。”,异常类型=“System.ObjectDisposedException”
为了修复它,我尝试了:
ms.Flush();
我们的目标是将 byte[] 保存到数据库中。我们也试过这个:
var parameter = new SqlParameter("@Value", SqlDbType.Image)
{
Value = Image
};
cmd.Parameters.Add(parameter);
它说 Bitmap to Byte[] 失败了。整个插入命令是:
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();
}