繁体   English   中英

如果图片框为空,如何返回null否则返回图片字节

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM