黑马程序员技术交流社区

标题: 怎样往数据库里插入图片 [打印本页]

作者: 陈家辉    时间: 2013-8-11 09:46
标题: 怎样往数据库里插入图片
本帖最后由 陈家辉 于 2013-8-17 23:59 编辑

请问怎么往数据库里插入图片并且怎么样把前台和后台的数据库连起来???
作者: 聂广强    时间: 2013-8-11 10:29
这个问题其实就是图片的上传与下载功能的实现 我这写有两个方法 没有使用三层 就是简单的字符串的拼接
这个是文件上传的方法 对图片也适用
  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 13:20
聂广强 发表于 2013-8-11 10:29
这个问题其实就是图片的上传与下载功能的实现 我这写有两个方法 没有使用三层 就是简单的字符串的拼接
这 ...

{:soso_e183:}学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2