C#Winform 在DataGridView(SQL Server)中下载和上传文件方法
2016-02-24 22:41
507 查看
下载方法:
private void DownloadFile(string gl_fileid) { string sql = "select * from files where fileid='" + gl_fileid + "'"; DataTable dt = DBUtil.GetData(sql); if (dt.Rows.Count > 0) { DataRow dr = dt.Rows[0]; string extension = dr["filetype"].ToString(); string filename = dr["filename"].ToString(); byte[] bytes = (byte[])dr["filecontent"]; SaveFileDialog dia = new SaveFileDialog(); dia.FileName = filename; if (dia.ShowDialog()==DialogResult.OK) { string filePath = dia.FileName; FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); fs.Write(bytes, 0, (int)bytes.Length); fs.Dispose(); fs.Close(); MessageBox.Show("文件下载成功!"); } } }上传方法:
private void btnSubmit_Click(object sender, EventArgs e) { string filePath = this.txtFilePath.Text.ToString(); //Console.WriteLine("filePath"+filePath); if (filePath.Length == 0) { MessageBox.Show("请选择要上传的文件!"); return; } string _fileid = Guid.NewGuid().ToString(); string _filename = filePath.Substring(filePath.LastIndexOf("\\") + 1); string _filetype = _filename.Substring(_filename.LastIndexOf(".") + 1); string _createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string sql = "insert into files(fileid,filename,filetype,filecontent,createtime) values(@fileid,@filename,@filetype,@filecontent,@createtime)"; SqlParameter p_fileid = new SqlParameter("fileid", _fileid); SqlParameter p_filename = new SqlParameter("filename", _filename); SqlParameter p_filetype = new SqlParameter("filetype", _filetype); SqlParameter p_createtime = new SqlParameter("createtime", _createtime); SqlParameter p_filecontent = new SqlParameter("filecontent", SqlDbType.Image); FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); byte[] bytes = new byte[fs.Length]; fs.Read(bytes, 0, (int)fs.Length); p_filecontent.Value = bytes; using (SqlConnection conn = new SqlConnection(sqlconn)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sql; cmd.Parameters.Add(p_fileid); cmd.Parameters.Add(p_filename); cmd.Parameters.Add(p_filecontent); cmd.Parameters.Add(p_filetype); cmd.Parameters.Add(p_createtime); cmd.ExecuteNonQuery(); } fs.Close(); fs.Dispose(); MessageBox.Show("文件上传成功!"); this.LoadData(); }
相关文章推荐
- 关于sql中的distinct和top合用
- mssql性能优化
- Memcached 监控
- MySQL存储引擎--MyISAM与InnoDB区别
- Memcached 笔记
- 修改oracle database中user的密码遇到ORA-28003和ORA-20001
- JPA Hibernate 和数据库 的 锁机制
- SQL Server 高性能写入的一些经验总结
- redis 数据类型详解 以及 redis适用场景场合
- 数据库_MySQL_SQL语句的组装顺序 和 GROUP BY的SELECT语句中显示COUNT()为0的结果
- 关于Redis中的serverCron
- Oracle 11g 64位/32位官方版附详细的安装图解教程
- ehcache memcache redis 三大缓存男高音
- jdbc连接数据库工具类
- C++ 自制Redis数据库(十三) 持久化AOF日志模块测试完毕
- oracle spool 导出纯数据文本
- Oracle_11g桌面版 中解决被锁定的scott 教学数据库的方法
- oracle 死锁问题
- 通过源码安装Redis
- django+mysql实现一个简单的博客系统