如果图片框为空则返回null else else返回图片字节
问题描述:
在我的下面的代码中我想返回数据null如果我的PictureBox(pbspic)为null否则如果PictureBox(pbspic)包含图片我想要数据返回图片字节,以便我可以保存空或图片在我的数据库中如果图片框为空则返回null else 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);
return data;
}
cmd.Parameters.Add("@Photo", SqlDbType.VarChar).Value = data;
dm2.ExecActQuery("StudentsInsert", cmd);
答
尝试创建流的metthod然后调用它的画面是这样
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);
答
您是否尝试过类似以下内容? :
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;
}
}
您可以将此代码移动到一个新的功能和返回值从那里。说,你为什么要返回按钮点击事件的值?你可能想在你的页面上设置一些消息。无论如何,如果你让我知道你想做什么,那么我可以帮助你更好:) – 2012-04-17 16:30:37
你的意思是你试图编辑按钮点击事件的一些值,并希望显示一条消息给用户,如果图片是空的? – 2012-04-17 16:33:48
对了。如果用户在图片框中设置了图片,我实际上想要将图片保存在数据库中。如果用户没有在图片框中设置任何图片比我想要保存我的数据库中的null,因为我的数据库中的图像列也允许空值。 – kashif 2012-04-17 16:35:32