C#往数据库字段里存取文件(比如图片等,或称OLE对象,BLOB大二进制字节数组)...

其实很简单,可是在找到方法之前,网上到处搜索,各种说法一度以为很麻烦。所以记载下来分享。

以Access2007为例,创建数据库,建个表,要插入二进制数据的字段的数据格式设为OLE对象。

连接:

OleDbConnection aConnection;

String strConnect = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=e:\\userdata.accdb";

//视数据库类型和版本的不同,填写不同的Provider(引擎)。
aConnection = new OleDbConnection(strConnect);
aConnection.Open();

存入:

byte[] arrImage = ImageAndBytes.GetBytes(Image.FromFile("E:\\U38.jpg"));//ImageAndBytes是自写的图片与字节数组互转的类。
            String strSql = String.Format("insert into [userdata]([strID],[Image]) values('ID001',:logo)");
            OleDbCommand aCommand = new OleDbCommand(strSql, aConnection);
            aCommand.Parameters.AddWithValue(":logo", arrImage);//带参数的命令

            aCommand.ExecuteNonQuery();

读取:

OleDbCommand bCommand = new OleDbCommand("select Image from userdata where strID=ID001", aConnection);

//保证选出来的第一行第一列就是你要的数据。
            byte[] bytes = (byte[])bCommand.ExecuteScalar();
            Image img = ImageAndBytes.GetImage(bytes);
            pictureBox1.Image = img;

 

转载于:https://www.cnblogs.com/hillman9/articles/1907347.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值