考试辅导

名师推荐

试听名师的课 查看所有名师

计算机等级考试辅导:SQLServer把图片存入数据库的代码 发布时间:2010-07-02 17:29 来源:互联网

  存入数据库的代码:
  // 把图片转换成byte[]
  MemoryStream ms=new MemoryStream();
  byte[] imagedata=null;
  Image.FromFile("c:\\a.gif").Save(ms,System.Drawing.Imaging.ImageFormat.Gif );
  imagedata=ms.GetBuffer ();
  // 生成Sql
  string sql ="Insert Into 你的表名 (Image字段) values(@filedata)";
  SqlParameter p=new SqlParameter("@filedata",SqlDbType.Image);
  p.value=imagedata;
  // 执行Sql
  private void button2_Click(object sender, System.EventArgs e)
  {
  try
  {
  System.IO.FileInfo fs = new System.IO.FileInfo(this.filename);
  if (!fs.Exists)
  {
  MessageBox.Show("无效的文件名!");
  return;
  }
  //创建一字节数组,用来存储图像文件.(数组的长度是图像文件的长度)
  byte[] Content=new byte[fs.Length];
  //打开文件并用他初始化一个文件流对象
  FileStream ImageFileStream=fs.OpenRead();
  //将文件内容写入字节数组
  ImageFileStream.Read(Content,0,Content.Length);
  //关闭文件流
  ImageFileStream.Close();
  //创建一个Sql命令对象,用来插入记录
  System.Data.OleDb.OleDbCommand mycmd = new System.Data.OleDb.OleDbCommand(updatesql,DB.OleConn());
  mycmd.CommandType = CommandType.StoredProcedure;
  mycmd.Parameters.Add("@image",System.Data.OleDb.OleDbType.VarBinary);
  mycmd.Parameters.Add("@bh",OleDbType.VarChar,20);
  mycmd.Parameters["@image"].Value = Content;
  mycmd.Parameters["@bh"].Value =bh;
  //打开数据库连接
  if (mycmd.Connection.State!=ConnectionState.Open)
  {
  mycmd.Connection.Open();
  }
  //执行 Sql 语句
  mycmd.ExecuteNonQuery();
  //关闭数据库连接
  mycmd.Connection.Close();
  MessageBox.Show("图像文件 " + fs.FullName + " 成功上传到数据库!");
  this.filename ="";
  myds.Tables[0].Clear();
  myda.Fill(myds,"A");
  //mybind.Position =0;
  //this.Showimage();
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message);
  }
  this.button2.Enabled = false;
  }
  byte[] buffer;
  // 1)第一考试网提示磁盘文件中加载文件
  System.IO.FileStream fs = new System.IO.FileStream("文件名", System.IO.FileMode.Open);
  buffer = new byte[fs.Length];
  fs.Read(buffer, 0, buffer.Length);
  // 2)从表单读取上传的文件 File1 为文件上传的 HTML 控件
  System.IO.Stream stream = this.File1.PostedFile.InputStream;
  buffer = new byte[stream.Length];
  stream.Read(buffer, 0, buffer.Length);
  // 请任选以上一种获取图片数据
  // 写入数据库
  System.Data.OleDb.OleDbParameter parameter = new System.Data.OleDb.OleDbParameter("@Image", System.Data.OleDb.OleDbType.Binary);
  parameter.Value = buffer;
  string insertCommand = "INSERT [表](字段) VALUES(@Image);";
  System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(insertCommand, conn);
  cmd.Parameters.Add(parameter);
  cmd.ExecuteNonQuery();
  // 读取图片的代码,我就不写,忙没时间。其实很简单就是查询一下而已。#p#分页标题#e#
  // 读取图片时,从数据库中把二进制数据赋值到 byte[] 数组中
  this.Response.ContentType = "image/JPEG"; // 设置 MIME 类型
  this.Response.BinaryWrite(buffer); // 输出二进制数据
  简洁有效的方法:顶顶,狂顶!!
  create table qqview(photo image)--建表
  go
  insert qqview
  select * from openrowset(bulk N’d:\壁纸\10.jpg’,single_blob) a --N’d:\壁纸\1.jpg’为路径和图片名。

第一考试网友情提示:如果您遇到任何疑问,请登录第一考试网考试辅导频道或添加qq:,第一考试网以“为考友服务”为宗旨,秉承“快乐学习,轻松考试!”的理念,旨在为广大考友打造一个良好、温馨的学习与交流平台,欢迎持续关注。以上是小编为大家推荐的《计算机等级考试辅导:SQLServer把图片存入数据库的代码》相关信息。

编辑推荐

计算机等级考试辅导:SQL中JOB的运行状态

计算机等级考试辅导:SQLSERVER2005的引用

三级:把数据导入不同的表空间

2009年三级信息管理技术辅导:战略数据规划

教你三种方法卸载Windows7SP1Beta