欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#操作数据库中存取图片文件的方法

程序员文章站 2023-10-31 14:11:52
本文实例讲述了c#操作数据库中存取图片文件的方法。分享给大家供大家参考。具体如下: private string sqlconnstr = "data sourc...

本文实例讲述了c#操作数据库中存取图片文件的方法。分享给大家供大家参考。具体如下:

private string sqlconnstr = "data source=.;database=db_test;user id=sa;pwd=123456";
/*功能:把一种图片插入到数据库中
 *返回值:无
 */
void insertimagetodb()
{
  //将需要存储的图片读取为数据流
  filestream fs = new filestream(@"d:/bear.jpg", filemode.open, fileaccess.read);
  byte[] byte_fs = new byte[fs.length];
  fs.read(byte_fs, 0, convert.toint32(fs.length));
  fs.close();
  //建立数据库连接
  sqlconnection conn = new sqlconnection(sqlconnstr);
  conn.open();
  sqlcommand cmd = new sqlcommand();
  cmd.connection = conn;
  cmd.commandtext = "insert into tb_test(image_id,image_file) values(@image_id,@image_file)";
  sqlparameter[] param = new sqlparameter[2];
  param[0] = new sqlparameter("@image_id", sqldbtype.int);
  param[0].value = 1;
  param[1] = new sqlparameter("@image_file", sqldbtype.image);
  param[1].value = byte_fs;
  for (int index = 0; index < 2; index++)
  {
 cmd.parameters.add(param[i]);
  }
  //执行sql语句
  cmd.executenonquery();
  conn.close();
}
/*功能:从数据库中读取图像文件,并显示在picturebox控件中
 *返回值:无
 */
void getimagefromdb()
{
  byte[] data = new byte[0];
  //建立数据库连接
  sqlconnection conn = new sqlconnection(sqlconnstr);
  conn.open();
  sqlcommand cmd = new sqlcommand();
  cmd.connection = conn;
  cmd.commandtext = "select * from tb_parent";
  sqldatareader sdr = cmd.executereader();
  sdr.read();
  data = (byte[])sdr["parent_image"];//读取第一个图片的位流
  memorystream mystream = new memorystream(data);
  //用指定的数据流来创建一个image图片
  system.drawing.image picbimage = system.drawing.image.fromstream(mystream, true);
  mystream.close();
  picturebox1.image = picbimage;
  conn.close();
}

希望本文所述对大家的c#程序设计有所帮助。