关闭

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

标签: 数据库imagebyteinsertexceptionstring
420人阅读 评论(0) 收藏 举报

据库结构
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;
 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:384504次
    • 积分:7168
    • 等级:
    • 排名:第3103名
    • 原创:325篇
    • 转载:71篇
    • 译文:1篇
    • 评论:34条
    最新评论