NET 下数据库图片的存入与读取

原创 2007年09月13日 15:44:00

据库结构
create table test
{
  id int identity(1,1),
  FImage image
}

 
相关的存储过程
Create proc UpdateImage (@UpdateImage Image)
As
Insert Into test (FImage) values (@UpdateImage)
GO

 
OpenFileDialog openfileDialog = new OpenFileDialog();
openfileDialog.Filter = "Picture Files(*.jpg)|*.jpg|Bmp(*.bmp)|*.bmp|All Files(*.*)|*.*";
FileStream fileStream;
openfileDialog.ShowDialog();
string filepath = openfileDialog.FileName;
if (filepath.Trim() != "")
{
  //获得图象并把图象转换为byte[]
  fileStream = new FileStream(filepath, FileMode.Open,  FileAccess.Read);
  byte[] photoArray = new byte[(int)fileStream.Length];
  fileStream.Read(photoArray, 0, photoArray.Length);
  fileStream.Close();
  try
  {
     pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
     pictureBox1.Image = System.Drawing.Image.FromFile(filepath);
  }
  catch (Exception ex)
  {
     MessageBox.Show(ex.Message);
  }
  //连接数据库
  SqlConnection myConnection = new SqlConnection();
  myConnection.ConnectionString ="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
  SqlCommand mySqlCommand = new SqlCommand("UpdateImage", myConnection);
  mySqlCommand.CommandType = CommandType.StoredProcedure;
  mySqlCommand.Parameters.Add("@UpdateImage", SqlDbType.Image);
  mySqlCommand.Parameters["@UpdateImage"].Value = photoArray;
  //如果不使用存储过程,可以把上面四句代码改为:
  //string strSql="Insert into test(FImage) values(@FImage)";
  //SqlCommand cmd=new SqlCommand(strSql,conn);
  //cmd.Parameters.Add("@FImage",SqlDbType.Image);
  //cmd.Parameters["@FImage"].Value=photoArray;
  myConnection.Open();
  mySqlCommand.ExecuteNonQuery();
  myConnection.Close();
}
//以下是从数据库读取图片
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
string strSql = "select FImage from test where id=1";
SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
MemoryStream ms = new MemoryStream((byte[])reader["FImage"]);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
reader.Close();
conn.Close();
pictureBox1.Image = image;
 

相关文章推荐

ASP.Net将图片以二进制方式存入数据库,并读取

把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) ...
  • my98800
  • my98800
  • 2016年11月08日 09:17
  • 1014

VB.NET操作ACCESS数据库读取存入图片

一、准备工作     在ACCESS数据库中,将字段声明为 OLE链接 类型 二、将图片框中图片转化成二进制数组的方法         Dim MyStream As New System.IO....

C#+asp.net+sql数据库完成图片的保存与读取

我们在使用asp.net时经常会用到数据库对图片进行保存和读取,因此笔者对此进行了仔细研究,图片的保存和读取有两种方式: 一.以图片的url地址的方式 在以图片url地址的方式中,我们向数据库中保...

.net生成带参数二维码存为图片,并且可以控制图片大小,数据库存入缓存

这是我第一次写Json的数据,发现Json和Cookie,S

C从SQL数据库中读取和存入图片

  • 2015年03月23日 10:44
  • 86KB
  • 下载

用.net实现网页图片以幻灯片形式播放,图片从数据库中读取前5张!!

var focus_width=250;//幻灯片新闻图片宽度                                 var focus_height=180;//幻灯片新闻图片高度  ...

ASP.NET 上传图片至数据库并读取图片显示--二进制流方式

以二进制流的方式存入数据库,并读取显示 数据库的字段同样简单: Image_ID    int    identity(1,1)     primarykey    not null ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NET 下数据库图片的存入与读取
举报原因:
原因补充:

(最多只允许输入30个字)