[英]how to return null if picture box is null else return picture byte
在我的以下代码中,如果我的PictureBox(pbspic)为null,我想返回数据为null;否则,如果PictureBox(pbspic)包含图片,我希望数据返回图片字节,以便可以将null或图片保存在数据库中
using (MemoryStream stream = new MemoryStream())
{
Bitmap bmp = new Bitmap(pbspic.Image);
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
stream.Position = 0;
byte[] data = new byte[stream.Length];
stream.Read(data, 0, data.Length);
return data;
}
cmd.Parameters.Add("@Photo", SqlDbType.VarChar).Value = data;
dm2.ExecActQuery("StudentsInsert", cmd);
您是否尝试过以下方法? :
else if(pbspic == null) /* Or it could be pbspic.Image == null, depends on which is null */
{
ep.SetError(tbmonfee, "Image is missing.");
return;
}
else
{
using (MemoryStream stream = new MemoryStream())
{
Bitmap bmp = new Bitmap(pbspic.Image);
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
stream.Position = 0;
byte[] data = new byte[stream.Length];
stream.Read(data, 0, data.Length);
}
if(data == null) /* Or check data length if it's never null */
{
ep.SetError(tbmonfee, "Image is missing.");
return;
}
}
尝试创建流的方法,然后将其称为这样的图片
private byte[] GetPic(Image img)
{
using (MemoryStream stream = new MemoryStream())
{
Bitmap bmp = new Bitmap(pbspic.Image);
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
stream.Position = 0;
byte[] data = new byte[stream.Length];
stream.Read(data, 0, data.Length);
return data;
}
}
用法:
if (pbspic.Image == null)
{
cmd.Parameters.Add("@Photo", SqlDbType.VarChar).Value = "NULL";
}
else
{
cmd.Parameters.Add("@Photo", SqlDbType.Image).Value = GetPic(pbspic.Image);
}
dm2.ExecActQuery("StudentsInsert", cmd);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.