A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈家辉 中级黑马   /  2013-8-11 09:46  /  877 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈家辉 于 2013-8-17 23:59 编辑

请问怎么往数据库里插入图片并且怎么样把前台和后台的数据库连起来???

2 个回复

倒序浏览
这个问题其实就是图片的上传与下载功能的实现 我这写有两个方法 没有使用三层 就是简单的字符串的拼接
这个是文件上传的方法 对图片也适用
  1.   private bool UploadFileToDB(string fileName)
  2.         {
  3.             string cnnString = "server=.;database=LargeDataDB;uid=sa;pwd=123456";

  4.             string cmdText = "usp_Videos_Insert";

  5.             SqlConnection cnn = new SqlConnection(cnnString);
  6.             cnn.Open();

  7.             SqlCommand cmd = new SqlCommand();
  8.             cmd.Connection = cnn;
  9.             cmd.CommandText = cmdText;
  10.             cmd.CommandType = CommandType.StoredProcedure;

  11.             cmd.Parameters.Add("@FileName", SqlDbType.VarChar).Value = fileName.Substring(fileName.LastIndexOf(@"\")+1);
  12.             
  13.             FileStream stream = new FileStream(fileName, FileMode.Open);

  14.             byte[] buffer = new byte[stream.Length];
  15.             stream.Read(buffer, 0, buffer.Length);
  16.             stream.Close();

  17.             cmd.Parameters.Add("@Data", SqlDbType.Image).Value = buffer;

  18.             int rowCount = cmd.ExecuteNonQuery();

  19.             cnn.Close();

  20.             if (rowCount > 0)
  21.             {
  22.                 return true;
  23.             }
  24.             else
  25.             {
  26.                 return false;
  27.             }

  28.         }
复制代码
那个数据库就是你所要上传图片的数据库 文件的全路径 可以通过 OpenFileDialog控件进行获取

然后是下载功能
  1. private string DownFileFromDB()
  2.         {
  3.             string cnnString = "server=.;database=LargeDataDB;uid=sa;pwd=123456";

  4.             string cmdText = "select FileName,Data from Videos";

  5.             SqlConnection cnn = new SqlConnection(cnnString);
  6.             cnn.Open();

  7.             SqlCommand cmd = new SqlCommand();
  8.             cmd.Connection = cnn;
  9.             cmd.CommandText = cmdText;
  10.             cmd.CommandType = CommandType.Text;
  11.            

  12.             SqlDataReader reader = cmd.ExecuteReader();

  13.             string fileName = string.Empty;
  14.             byte[] buffer = null;

  15.             while (reader.Read())
  16.             {
  17.                 fileName = (string)reader["FileName"];

  18.                 fileName = "D:\\" + fileName;

  19.                 buffer = (byte[])reader["Data"];

  20.                 FileStream stream = new FileStream(fileName, FileMode.Create);

  21.                 stream.Write(buffer,0,buffer.Length);

  22.                 stream.Close();
  23.             }

  24.             return fileName;

  25.         }
复制代码
回复 使用道具 举报
聂广强 发表于 2013-8-11 10:29
这个问题其实就是图片的上传与下载功能的实现 我这写有两个方法 没有使用三层 就是简单的字符串的拼接
这 ...

{:soso_e183:}学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马