小弟因毕业设计刚接触C#,做一个基于数据库的图像处理程序,但是在编写将图像存入数据库的代码时,可以通过编译,不过在运行的时候会出现“GDI+中出现一般性错误”的提示,因懂的不多,所以实在不知道如何解决,所以想拜托各位高手,能不能麻烦你们帮我写段代码。
具体要求是:先打开一个图像(只有bmp类型即可),然后在PictureBox中显示该图像,最后将PictureBox中的图像存入数据库中。数据库我是用sql 2005创建的,数据库名称为image,表名称为pic,表中的列分别为:id(int,主键),picdata(image 用于存储图像数据)。
附加说明:因为是做毕业设计,所以是将图像数据直接存入数据库。
恳求大家帮帮忙,小弟在此万分感谢。
具体要求是:先打开一个图像(只有bmp类型即可),然后在PictureBox中显示该图像,最后将PictureBox中的图像存入数据库中。数据库我是用sql 2005创建的,数据库名称为image,表名称为pic,表中的列分别为:id(int,主键),picdata(image 用于存储图像数据)。
附加说明:因为是做毕业设计,所以是将图像数据直接存入数据库。
恳求大家帮帮忙,小弟在此万分感谢。
OpenFileDialog file = new OpenFileDialog();
file.Title = "选择图片";
file.Filter = "图片格式 (*.jpeg,*.bmp,*.gif,*.jgp)|*.jpeg;*.bmp;*.gif;*.jpg|所有文件 (*.*)|*.*";
if (file.ShowDialog() == DialogResult.OK)
{ int ind = file.FileName.LastIndexOf('.');
string extName = file.FileName.Substring(ind + 1);
if (!(extName.ToUpper() == "BMP" || extName.ToUpper() == "GIF" || extName.ToUpper() == "JPEG" || extName.ToUpper() == "JPG"))
{
MessageBox.Show("请选择正确的图片格式", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Image image = Image.FromFile(file.FileName);
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//把 ms.ToArray()保存就行了
}
protected void Tijiao_Click(object sender, System.EventArgs e)
{
if(Upload.PostedFile.FileName.ToUpper().EndsWith("JPG") || Upload.PostedFile.FileName.ToUpper().EndsWith("GIF"))
{
int len = Upload.PostedFile.ContentLength;
byte[] pic = new byte[len];
Upload.PostedFile.InputStream.Read(pic, 0, len); String cnStr = System.Configuration.ConfigurationSettings.AppSettings["cnstr"];
PicTongxue myPicTongxue = new PicTongxue(cnStr);
myPicTongxue.Title = this.title.Text.Trim();
myPicTongxue.UserID = ((User)Session["user"]).UserID;
myPicTongxue.PubDate = System.DateTime.Now;
myPicTongxue.Images = pic;
myPicTongxue.Creat();
Response.Write("<script language='javascript'>" + "alert('上传图片成功!');</script>");
Response.Write("<script language='javascript'>" + "location.href='Xiangce.aspx';</script>");
}
else
{
Response.Write("<script language='javascript'>" + "alert('上传图片文件格式不正确!');</script>");
}
}
{
Stream ms;
byte[] by;
OpenFileDialog OpenFileDialog1= new OpenFileDialog();
if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((ms = OpenFileDialog1.OpenFile()) != null)
{Image img = Image.FromFile(OpenFileDialog1.FileName);
this.pictureBox1.Image = img;
picbyte = new byte[ms.Length];
ms.Position = 0;
ms.Read(by, 0, Convert.ToInt32(ms.Length));
//MemoryStream ms = new MemoryStream();
//img.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg); using( SqlConnection conn = new SqlConnection(""))
{
sql = "Insert into Tb(Photo) values(@UpdateImage)";
SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.Add("@UpdateImage", SqlDbType.VarBinary);
cmd.Parameters["@UpdateImage"].Value = by;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
ms.Close();
}
}
}
}