C# 如何将空图像添加到表中
如果用户未为picturebox设置图像,请将empy图像保存在表中 我的代码是:C# 如何将空图像添加到表中,c#,winforms,C#,Winforms,如果用户未为picturebox设置图像,请将empy图像保存在表中 我的代码是: byte[] arrImage; if (picperson.Image != null) { //convert image to byte MemoryStream ms = new MemoryStream(); picperson.Image.Save(ms, picperson.Image.RawFormat); arrImage = ms.GetBuffe
byte[] arrImage;
if (picperson.Image != null)
{
//convert image to byte
MemoryStream ms = new MemoryStream();
picperson.Image.Save(ms, picperson.Image.RawFormat);
arrImage = ms.GetBuffer();
ms.Close();
}
else arrImage = null;
objcommand.Parameters.AddWithValue("@picture", arrImage);
当他添加空图像时,picperson.image.Save(ms,picperson.image.RawFormat)行出现异常
如何将空imag添加到表中
您不能为图像参数传递空值,因此解决方法是在零字节数组中发送:
if (picperson.Image != null) {
//convert image to byte
} else {
arrImage = new byte[0];
}
不幸的是,这不会将字段设置为null
如果要将字段设置为null,最好使用单独的查询进行处理,例如:
using (SqlCommand q = new SqlCommand("INSERT INTO M (MyImage) VALUES (null)", cn)
...
它不使用参数
就阅读一些评论而言,似乎需要指定图像格式。尝试使用希望图像保存为的实际格式:
picperson.Image.Save(ms, ImageFormat.Bmp);
// or
picperson.Image.Save(ms, ImageFormat.Jpeg); // or Png, etc.
选择任何图像,并在需要添加null时添加它。。。简单!!好悲伤。。。我不知道这个人在说什么。我知道我的英语不是很好,但仍然是。“但当我想添加错误”。。。这是什么意思?桌子的尺寸变大了@这意味着当他添加
null
image时,第picperson.image.Save(ms,picperson.image.RawFormat)行出现异常代码>visual studio在picperson.Image.Save(ms,picperson.Image.RawFormat)上突出显示此代码工作正常,但当我想在datagridview中查看表时出错。@anfd这听起来像是一个新问题。请尝试用适当的文档(如错误消息)发布它,如果可能的话,提供足够的代码,以便读者能够理解手头的问题。当然,首先尝试研究一下,看看这个问题以前是否已经解决过。