C#实现文件与二进制互转并存入数据库
2024-10-20 08:41:58
这篇文章主要介绍了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();
}
最新文章
- EF架构~EF异步改造之路~仓储接口的改造~续
- js设计模式总结-代理模式
- [DeviceOne开发]-白板的示例
- Github 简明教程
- JQuery + JSON作为前后台数据交换格式实践
- Java:多线程<;四>; Lock、停止线程、守护线程、join、优先级&;yield
- python数据结构与算法——链表
- 读取excel到数据库里面
- winform中关于panel中滚动条和键盘事件几点体会
- apache配置虚拟主机后,启动速度慢
- Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例
- 关于#include后面<;>;和"; ";的区别
- iOS UIView常用的一些方法setNeedsDisplay和setNeedsLayout 区别
- 【R语言系列】read.table报错incomplete final line found by readTableHeader
- python 单例实现
- MySQL 的安装与使用(一)
- ARKit从入门到精通(1)-ARKit初体验
- (转)常见LCD接口
- java中类相关注意事项
- Spring Security构建Rest服务-0500-异步处理rest服务
热门文章
- R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)
- Q35+uefi or bios+legacy // PCI | PCIE
- vue-router路由器的使用
- redmine安装及SVN(https)配置
- win7 64位下使用regsvr32注册activex dll .
- Spring 之高级装配
- 【Java】流与文件(端口 &; 文件读写对象)
- AtCoder Regular Contest 097
- 【bzoj3298】[USACO 2011Open]cow checkers(博弈论)
- sublime使用记录之快速生成html5基本模板