保存图形到数据库及从数据库读取图像
2008-12-03 21:29
447 查看
1.保存图像到数据库
public void imgToDB(string sql)
{ //参数sql中要求保存的imge变量名称为@images
//调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'");
FileStream fs = File.OpenRead(t_photo.Text);
byte[] imageb = new byte[fs.Length];
fs.Read(imageb, 0, imageb.Length);
fs.Close();
SqlCommand com3 = new SqlCommand (sql,con);
com3.Parameters.Add("@images", SqlDBType.Image).Value = imageb;
if (com3.Connection.State == ConnectionState.Closed)
com3.Connection.Open();
try
{
com3.ExecuteNonQuery();
}
catch
{ }
finally
{ com3.Connection.Close(); }
}
2.数据库中读出图片并显示在picturebox中:
方法一:
private void ShowImage(string sql)
{
//调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'");
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
byte[] b= (byte[])cmd.ExecuteScalar();
if (b.Length 〉 0)
{
MemoryStream stream = new MemoryStream(b, true);
stream.Write(b, 0, b.Length);
pictureBox1.Image = new Bitmap(stream);
stream.Close();
}
conn.Close();
}
方法二:当在dg中选中某行时:
private void dg_MouseUp(object sender, MouseEventArgs e)
{
//整行选择
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{//用户编号,姓名,性别,身份证号,籍贯,学院,系所,校区,部门,电话,照片
//显示相片
object imgobj=dg[10, dg.CurrentRow.Index].Value;
if (imgobj != null && !Convert.IsDBNull(imgobj))
{
byte[] imgb = (byte[])imgobj;
MemoryStream memStream = new MemoryStream(imgb);
try
{
Bitmap myimge = new Bitmap(memStream);
this.pictureBox1.Image = myimge;
}
catch
{
DB.msgbox("从数据库读取相片失败!");
}
}
else
pictureBox1.Image = null;
}
}
3.另一种读取方法。
//绑定DataList
protected void DataListBind()
{
ConStr con = new ConStr();
con.OpenCon();
string str = "select * from Magazine order by MagaDate desc, MagaId desc";
SqlDataAdapter da = new SqlDataAdapter(str, con.Con);
DataSet ds = new DataSet();
da.Fill(ds, "Magazine");
this.DataList1.DataSource = ds.Tables["Magazine"];
DataList1.DataBind();
con.CloesCon();
//调用读数据库中图片方法
ReadPic();
for (int i = 0; i < DataList1.Items.Count; i++)
{
HiddenField hf = (HiddenField)this.DataList1.Items[i].FindControl("HiddenField3");
string strName = hf.Value.ToString();
System.Web.UI.WebControls.Image im = (System.Web.UI.WebControls.Image)DataList1.Items[i].FindControl("Image5");
im.ImageUrl = "Image/" + strName + ".jpg";
}
}
//从数据库中将杂志封面读出来
protected void ReadPic()
{
//ConStr工具类
ConStr con = new ConStr();
con.OpenCon();
string str = "select * from Magazine order by MagaDate desc";
//ReadFiledValue工具类
ReadFiledValue read = new ReadFiledValue(str);
if (read.ErrorNumber == 0)
{
while (read.GetDR.Read())
{
byte[] picbyte = (byte[])read.GetDR["MagaImg"];
string name = read.GetDR["MagaFileName"] + ".jpg";
string path = Server.MapPath("Image//") + name;
using (FileStream pic = File.Create(path, 1024))
{
pic.Write(picbyte, 0, picbyte.Length);
pic.Close();
}
}
}
else
{
//Image1.AlternateText = "没有图片";
}
}
public void imgToDB(string sql)
{ //参数sql中要求保存的imge变量名称为@images
//调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'");
FileStream fs = File.OpenRead(t_photo.Text);
byte[] imageb = new byte[fs.Length];
fs.Read(imageb, 0, imageb.Length);
fs.Close();
SqlCommand com3 = new SqlCommand (sql,con);
com3.Parameters.Add("@images", SqlDBType.Image).Value = imageb;
if (com3.Connection.State == ConnectionState.Closed)
com3.Connection.Open();
try
{
com3.ExecuteNonQuery();
}
catch
{ }
finally
{ com3.Connection.Close(); }
}
2.数据库中读出图片并显示在picturebox中:
方法一:
private void ShowImage(string sql)
{
//调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'");
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
byte[] b= (byte[])cmd.ExecuteScalar();
if (b.Length 〉 0)
{
MemoryStream stream = new MemoryStream(b, true);
stream.Write(b, 0, b.Length);
pictureBox1.Image = new Bitmap(stream);
stream.Close();
}
conn.Close();
}
方法二:当在dg中选中某行时:
private void dg_MouseUp(object sender, MouseEventArgs e)
{
//整行选择
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{//用户编号,姓名,性别,身份证号,籍贯,学院,系所,校区,部门,电话,照片
//显示相片
object imgobj=dg[10, dg.CurrentRow.Index].Value;
if (imgobj != null && !Convert.IsDBNull(imgobj))
{
byte[] imgb = (byte[])imgobj;
MemoryStream memStream = new MemoryStream(imgb);
try
{
Bitmap myimge = new Bitmap(memStream);
this.pictureBox1.Image = myimge;
}
catch
{
DB.msgbox("从数据库读取相片失败!");
}
}
else
pictureBox1.Image = null;
}
}
3.另一种读取方法。
//绑定DataList
protected void DataListBind()
{
ConStr con = new ConStr();
con.OpenCon();
string str = "select * from Magazine order by MagaDate desc, MagaId desc";
SqlDataAdapter da = new SqlDataAdapter(str, con.Con);
DataSet ds = new DataSet();
da.Fill(ds, "Magazine");
this.DataList1.DataSource = ds.Tables["Magazine"];
DataList1.DataBind();
con.CloesCon();
//调用读数据库中图片方法
ReadPic();
for (int i = 0; i < DataList1.Items.Count; i++)
{
HiddenField hf = (HiddenField)this.DataList1.Items[i].FindControl("HiddenField3");
string strName = hf.Value.ToString();
System.Web.UI.WebControls.Image im = (System.Web.UI.WebControls.Image)DataList1.Items[i].FindControl("Image5");
im.ImageUrl = "Image/" + strName + ".jpg";
}
}
//从数据库中将杂志封面读出来
protected void ReadPic()
{
//ConStr工具类
ConStr con = new ConStr();
con.OpenCon();
string str = "select * from Magazine order by MagaDate desc";
//ReadFiledValue工具类
ReadFiledValue read = new ReadFiledValue(str);
if (read.ErrorNumber == 0)
{
while (read.GetDR.Read())
{
byte[] picbyte = (byte[])read.GetDR["MagaImg"];
string name = read.GetDR["MagaFileName"] + ".jpg";
string path = Server.MapPath("Image//") + name;
using (FileStream pic = File.Create(path, 1024))
{
pic.Write(picbyte, 0, picbyte.Length);
pic.Close();
}
}
}
else
{
//Image1.AlternateText = "没有图片";
}
}
相关文章推荐
- 利用Python PIL、cPickle读取和保存图像数据库
- 利用Python PIL、cPickle读取和保存图像数据库
- 利用Python PIL、cPickle读取和保存图像数据库
- 【转】c#读取图像保存到数据库中(数据库保存图片)
- c#读取图像保存到数据库中(数据库保存图片)
- 利用Python PIL、cPickle读取和保存图像数据库
- 图像读取、转为灰度图像、均值平滑、显示保存操作
- 从数据库中读取一个图片并保存为一个图片文件
- Java读取接口数据并保存到数据库
- android解压zip到sdcard,并读取解压缩后文件中的xml特定信息,并保存到数据库
- 关于YUV视频的读取、播放,保存帧图片、以及处理的图像保存为YUV视频。
- opencv 图像的读取显示和保存
- libTIFF 图像读取与保存
- php将图片保存到mysql数据库及从数据库中读取图片的方法源码
- VC保存和显示数据库图像(JPG、JPEG)
- VC保存和显示数据库图像(BMP)
- 百万级Excel数据读取及保存到数据库
- python使用h5py读取mat文件数据,并保存图像
- Opencv 图像读取与保存问题
- C#保存图片到数据库,读取图片显示