C#实现文件与二进制互转并存入数据库
这篇文章主要介绍了C#实现文件与二进制互转并存入数据库,本文直接给出代码实例,代码中包含详细注释,需要的朋友可以参考下
//这个方法是浏览文件对象 private void button1_Click(object sender, EventArgs e) { //用户打开文件浏览 using (OpenFileDialog dialog = new OpenFileDialog()) { //只能单选一个文件 dialog.Multiselect = false; //选择一个文件 if (dialog.ShowDialog() == DialogResult.OK) { try { //把选择的文件路径给txtPath this.textBox1.Text = dialog.FileName; } catch (Exception ex) { //抛出异常 throw (ex); } } } } //关闭 private void button3_Click(object sender, EventArgs e) { this.Close(); } //把文件转成二进制流出入数据库 private void button2_Click(object sender, EventArgs e) { FileStream fs = new FileStream(textBox1.Text, FileMode.Open); BinaryReader br = new BinaryReader(fs); Byte[] byData = br.ReadBytes((int)fs.Length); fs.Close(); string conn = "server=.;database=testDB;Uid=sa;Pwd=sa "; SqlConnection myconn = new SqlConnection(conn); myconn.Open(); string str = "insert into pro_table (pro_name,pro_file) values('测试文件',@file)"; SqlCommand mycomm = new SqlCommand(str, myconn); mycomm.Parameters.Add("@file", SqlDbType.Binary, byData.Length); mycomm.Parameters["@file"].Value = byData; mycomm.ExecuteNonQuery(); myconn.Close(); } //从数据库中把二进制流读出写入还原成文件 private void button4_Click(object sender, EventArgs e) { string conn = "server=.;database=testDB;Uid=sa;Pwd=sa "; string str = "select pro_file from pro_table where pro_name='测试文件' "; SqlConnection myconn = new SqlConnection(conn); SqlDataAdapter sda = new SqlDataAdapter(str, conn); DataSet myds = new DataSet(); myconn.Open(); sda.Fill(myds); myconn.Close(); Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["pro_file"]; BinaryWriter bw = new BinaryWriter(File.Open("D:\\2.rdlc",FileMode.OpenOrCreate)); bw.Write(Files); bw.Close(); }C#实现文件与二进制互转并存入数据库的更多相关文章
- 【转载】C#将图片以二进制流的方式存入数据库
在C#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据.此文将介 ...
- C# 文件与二进制互转数据库写入读出
//这个方法是浏览文件对象 private void button1_Click(object sender, EventArgs e) { //用户打开文件浏览 using (OpenFileDia ...
- Springboot(九).多文件上传下载文件(并将url存入数据库表中)
一. 文件上传 这里我们使用request.getSession().getServletContext().getRealPath("/static")的方式来设置文件的存储 ...
- svn 修改文件的二进制或文本标记
在添加一个文件的时候,svn自动标记成了二进制文件.当时也没在意就提交了.结果修改了之后不能进行svn diff操作,说是二进制文件不能进行diff操作.在网上找了个方法,修改这个文件的标记属性,把这 ...
- C# 压缩文件与字节互转
public class ZipBin { public byte[] bytes; //C#读取压缩文件(将压缩文件转换为二进制 public void GetZipToByte(string in ...
- c#常用工具类:文件和二进制转换
//================二进制相关转换类============== #region 将文件转换为二进制数组 /// <summary> /// 将文件转换为二进制数组 /// ...
- C# 文件与二进制之间的转换
/// <summary> /// 工具类:文件与二进制流间的转换 /// </summary> public class FileBinaryConvertHelper { ...
- HTML5新特性之文件和二进制数据的操作 Blob对象
HTML5新特性之文件和二进制数据的操作 1.Blob对象 2.FileList对象 3.File对象 4.FileReader 对象 5.URL对象
- hexdump 工具使用 和 .txt 文件的二进制查看
最近使用txt文件进行数据处理的时候,突然发现txt文件是怎样编码数据的了,它是以二进制来进行存储的吗?为了知道这个情况,我使用hexdump工具进行查看txt文件的二进制形式,并顺道进行学习了hex ...
随机推荐
- redis实现cache系统原理(五)
1. 介绍 cache就是人们所说的缓存.我们这里所说的cache是web上的.对用户来说,衡量一个网站是否具有良好的体验,其中一个标准就是响应速度的快慢.可能网站刚上线,功能还较少,数据库的记录也不 ...
- 解读tensorflow之rnn 的示例 ptb_word_lm.py
这两天想搞清楚用tensorflow来实现rnn/lstm如何做,但是google了半天,发现tf在rnn方面的实现代码或者教程都太少了,仅有的几个教程讲的又过于简单.没办法,只能亲自动手一步步研究官 ...
- Pimpl Idiom /handle body idiom
在读<Effective C++>和项目源代码时,看到pImpl Idiom.它可以用来降低文件间的编译依赖关系,通过把一个Class分成两个Class,一个只提供接口,另一个负责实现该接 ...
- Python(装饰器)
eval 内容从字符串中提取出来,用Python运行一遍__name__得到函数名字 闭包函数 定义: 函数内部定义的函数称为内部函数 该内部函数包含对外部作用域,而不是对全局作用域的名字的引用 那么 ...
- delphi WebBrowser获取iframe页面内容及操作
uses MSHTML, ActiveX; function GetFrame(FrameNo:Integer):IWebbrowser2;var OleContainer:IOleContainer ...
- python 系统相关操作
1.文件 open()代开文件或者创建文件 fout=open('oops.txt','wt') print('Oops, I created a file.',file=fout) fout.clo ...
- POJ - 2226 Muddy Fields (最小顶点覆盖)
*.*. .*** ***. ..*. 题意:有一个N*M的像素图,现在问最少能用几块1*k的木条覆盖所有的 * 点,k为>=1的任意值. 分析:和小行星那题很像.小行星那题是将一整行(列)看作 ...
- Spring Web MVC 随笔
1.ContextLoaderListener 对于使用Spring的Web应用,无需手动创建Spring容器,而是通过配置文件声明式地创建Spring容器.可以直接在web.xml文件中配置创建Sp ...
- ajax与一般处理程序 HTTP协议交互
1,一般处理程序中 context.Response.ContentType = "text/plain", 则 ajax参数中 也是 text 类型. 2,一般处理程序中 转化 ...
- Hibernate : Query.list()、Query.iterator()的区别
Query上有list()与iterator()方法,两者的差别在于list()方法在读取数据时,并不会利用到快取,而是直接再向数据库查询,而iterator()则将读取到的数据写到快取,并于读取时再 ...