Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果图片框为null,则如何返回null,否则返回图片字节_C# - Fatal编程技术网

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

C# 如果图片框为null,则如何返回null,否则返回图片字节,c#,C#,在下面的代码中,如果我的PictureBox(pbspic)为null,我希望返回null数据,否则如果PictureBox(pbspic)包含图片,我希望数据返回图片字节,以便在数据库中保存null或图片 using (MemoryStream stream = new MemoryStream()) { Bitmap bmp = new Bitmap(pbspic.Image); bmp.Save(stream, System.

在下面的代码中,如果我的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;
}
}

你试过下面的方法吗

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

尝试创建一个流的Method,然后调用它来生成这样的图片

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

尝试创建一个流的Method,然后调用它来生成这样的图片

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

您可以将此代码移动到新函数并从中返回值。也就是说,为什么要从按钮单击事件返回值?您可能希望在页面上设置一些消息。在任何情况下,如果您让我知道您想要做什么,那么我可以更好地帮助您:)您的意思是您正在尝试编辑按钮单击事件上的某些值,并希望在图片为空时向用户显示一条消息?对。如果用户在图片框中设置了图片,我实际上想将图片保存在数据库中。如果用户没有在图片框中设置任何图片,我想在我的数据库中保存空值,因为数据库中的图像列也允许空值。你能为你的按钮事件添加代码吗,这样我就可以确切地告诉你要做什么更改?我的btn保存事件中没有姐妹我正在保存学生记录,如学生姓名学生的父亲姓名,学生的班级等,但我有问题,只保存图片,这就是为什么我只有粘贴在我的问题有关的问题代码,你可以将此代码移动到一个新的函数,并从那里返回值。也就是说,为什么要从按钮单击事件返回值?您可能希望在页面上设置一些消息。在任何情况下,如果您让我知道您想要做什么,那么我可以更好地帮助您:)您的意思是您正在尝试编辑按钮单击事件上的某些值,并希望在图片为空时向用户显示一条消息?对。如果用户在图片框中设置了图片,我实际上想将图片保存在数据库中。如果用户没有在图片框中设置任何图片,我想在我的数据库中保存空值,因为数据库中的图像列也允许空值。你能为你的按钮事件添加代码吗,这样我就可以确切地告诉你要做什么更改?我的btn保存事件中没有姐妹我正在保存学生记录,如学生姓名学生的父亲姓名,学生的班级等,但我有问题,只保存图片,这就是为什么我只有粘贴在我的问题有关的问题代码