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 ...
随机推荐
- java 多线程 day04 线程通信
package com.czbk.thread; /** * Created by chengtao on 17/12/3. * 需求: 子线程先运行10次,然后主线程运行 100次,依次运行50次 ...
- mysql 时间处理函数
(1)求两个时间戳之间相差的天数 SELECT TIMESTAMPDIFF(DAY, FROM_UNIXTIM ...
- s5_day11作业
# 1 文件内容如下,标题为:姓名,性别,年纪,薪资 # # egon male 18 3000 # alex male 38 30000 # wupeiqi female 28 20000 # yu ...
- 开启无线WLAN方式
1.以管理员身份运行命令提示符 因为下面的步骤必须在管理员权限下运行,因此我们从开始菜单找到"命令提示符",或直接键入cmd快速搜索,右键单击它,选择"以管理员身份运行& ...
- LightOJ - 1138 (二分+阶乘分解)
题意:求阶乘尾部有Q(1 ≤ Q ≤ 108)个0的最小N 分析:如果给出N,然后求N!尾部0的个数的话,直接对N除5分解即可(因为尾部0肯定是由5*2构成,那么而在阶乘种,2的因子个数要比5少,所以 ...
- ubuntu开启ROOT用户自动登录教程
ub默认不开root很纠结,虽说是为了安全,但对于linux老鸟,老是sudo烦的很 开root方法: sudo passwd root 输入root密码 sudo gedit /etc/gdm/cu ...
- 微信小程序快速开发
微信小程序快速开发 一.注册小程序账号,下载IDE 1.官网注册https://mp.weixin.qq.com/,并下载IDE. 2.官方文档一向都是最好的学习资料. 注意:1)注册账号之后会有一个 ...
- jQuery上下切换带缩略图的焦点图
在线演示 本地下载
- JSP Tomcat8.0运行连接池时发生异常【AbstractMethodError oracle.jdbc.driver.T4CConnection.isValid(I)Z】
原创 2015年12月28日 11:38:01 2004 一.Tomcat8.0运行连接池时发生异常: AbstractMethodError oracle.jdbc.driver.T4CConnec ...
- 用树状数组求逆序对数(poj2299)
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 46995 Accepted: 17168 ...