C#读取Mysql blob字段 (转帖)
http://blog.csdn.net/config_man/article/details/6123191
开发环境:Windows XP Professional SP3、VS2008、Winform、MySQL5.0、MySQL.Data.dll 6.2.3.0
1、从硬盘上读取一图片,将其转化为流,然后存储到此BLOB字段中
- private void button1_Click(object sender, EventArgs e)
- {
- byte[] bytes = null;
- bytes = File.ReadAllBytes(@"C:/Documents and Settings/user/My Documents/My Pictures/11.jpg");
- using (MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection())
- {
- conn.ConnectionString = ConfigurationManager.ConnectionStrings["test"].ConnectionString;
- MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
- cmd.CommandText = "insert into test(id,picture) values(@id,@picture)";
- cmd.CommandType = CommandType.Text;
- cmd.Parameters.Add("@id", MySql.Data.MySqlClient.MySqlDbType.Int32);
- cmd.Parameters.Add("@picture", MySql.Data.MySqlClient.MySqlDbType.Blob);
- cmd.Parameters[0].Value = 15;
- cmd.Parameters[1].Value = bytes;
- cmd.Connection = conn;
- conn.Open();
- int affectedrows = cmd.ExecuteNonQuery();
- cmd.Dispose();//此处可以不用调用,
- conn.Close();// 离开 using 块, connection 会自行关闭
- }
- }
2、读取此BLOB字段,将其转化为图片显示在Picturebox控件上
- private void button2_Click(object sender, EventArgs e)
- {
- using (MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection())
- {
- conn.ConnectionString = ConfigurationManager.ConnectionStrings["test"].ConnectionString;
- conn.Open();
- MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
- cmd.CommandType = CommandType.Text;
- cmd.CommandText = "select id,picture from test where id = 11";
- cmd.Connection = conn;
- System.Data.Common.DbDataReader reader = cmd.ExecuteReader();
- byte[] buffer = null;
- if (reader.HasRows)
- {
- reader.Read();
- long len = reader.GetBytes(1, 0, null, 0, 0);//1是picture
- buffer = new byte[len];
- len = reader.GetBytes(1, 0, buffer, 0, (int)len);
- System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer);
- System.Drawing.Image iamge = System.Drawing.Image.FromStream(ms);
- pictureBox1.Image = iamge;
- }
- }
- }
数据库相关文件配置在App.config中,如果不用配置文件,可以写成:
string remote = "Persist Security Info=False;database=数据库名;server=服务器IP;user id=用户名;pwd=密码";
然后conn.ConnectionString = remote;即可。
后记:
之前在.net中用的mysql库是:MySQLDriverCS,但是一直没有搞定,而且用官方给的读取blob字段也失败。于是改用MySql.Data.dll ,注意Mysql.Data5.0版本不支持读取Blob字段,所以需要用较高版本,我用的是MySQL.Data.dll 6.2.3.0。
MySql.Data.dll 6.2.3.0下载地址:http://download.csdn.net/source/2968152
MySql.Data.dll 5.0.9.0下载地址:http://download.csdn.net/source/2968157
C#读取Mysql blob字段 (转帖)的更多相关文章
- MYSQL BLOB 字段大小以及个数的限制測试。
測试结论 mysql版本号 5.1 表类型: innodb, row_format=compact (这是默认的行格式) 插入超过10个blob, blob的数据量非常小(<76 ...
- SpringMVC处理MySQL BLOB字段的下载
任务: uos.docfile的content字段是longblob类型,通过Web点击链接能下载到存储在这个字段里的文件.Web点击链接类似如下形式: http://localhost:8080/d ...
- SpringMVC处理MYSQL BLOB字段的上传
任务: uos.docfile的content字段是longblob类型的,通过页面将文件存储到这个字段里. 页面代码: <div class="box"> <d ...
- mysql BLOB字段转String的方法
1.通过sql直接转换 select CONVERT(GROUP_CONCAT(XXX) USING utf8 from usertable; 2.通过程序转换(注:本例用的是springmvc包装并 ...
- java 读写Oracle Blob字段
许久没有分享代码了,把这段时间写的一个Java操作Blob字段,有日子没写Java了,就当作笔记记录一下.1. [代码][Java]代码 跳至 [1] [全屏预览]package com.wa ...
- wpf读取mysql字段类型为text的问题
在读取数据库中的字段时,可能会根据环境的不同导致一些字段的读取方式不尽相同,在sql数据库中读取字段值用的最多的算是dataTable.Rows[行][列],但是到了mysql中就会有一些差别,在fl ...
- 关于C#读取MySql数据时,返回DataTable中某字段数据是System.Array[]形式
我在使用C#(VS2008)读取MySql数据库(5.1版本)时,返回的DataTable数据中arrivalDate字段数据显示为System.Array[]形式(程序中没有对返回的数据进行任何加工 ...
- java读取mysql表的注释及字段注释
/** * 读取mysql某数据库下表的注释信息 * * @author xxx */ public class MySQLTableComment { public static Connectio ...
- MySQL中TEXT与BLOB字段类型的区别
这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下 在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程 ...
随机推荐
- 【转】C# 生成二维码并且在中间加Logo(图片合并)
public class QRCodeHelper { public static Bitmap GetThumbnail(Bitmap b, int destHeight, int destWidt ...
- springmvc事务回滚失效
转载:http://blog.csdn.net/z69183787/article/details/37819831 前文提到,最新换了框架,新项目用SpringMVC + Spring JdbcTe ...
- CentOS6编译安装Python3
CentOS6默认Python版本是2, 但我使用的是Python3,因此需要自己安装 但记住,不要删除自带的Python2,否则很多东西会报错,比如yum之类的.(别问我为什么知道...) 话不多说 ...
- Response.ContentType都有哪些?
Response.ContentType 名称 类型ai application/postscriptaif audio/x-aiffaifc audio/x-aiffaiff audio/x-aif ...
- 对Repository模式误用的反思和纠正
一直以来想自己做一套开发框架,在其基础上进行快速开发,自从接触微软的MVC框架和Entityframework以来,阅读了大量园子里的相关的技术文章,也进行了不少摸索和尝试,中间经历了多次大刀阔斧的重 ...
- struts2的execAndWait拦截器
struts2中有许多默认拦截器,这里我们看一下execAndWait拦截器. 当一个页面需要加载一段时间的时候,我们希望它不是一直呆在原页面直到加载完成,而是进入等待页面,加载完毕后自动进入目标页面 ...
- require('nw.gui') 失效问题
// gui = global.window.nwDispatcher.requireNwGui() --original // gui = window.require('nw.gui') gui ...
- 揭秘Keras推荐系统如何建立模型、获取用户爱好
你是否有过这样的经历?当你在亚马逊商城浏览一些书籍,或者购买过一些书籍后,你的偏好就会被系统学到,系统会基于一些假设为你推荐相关书目.为什么系统会知道,在这背后又藏着哪些秘密呢? 荐系统可以从百万甚至 ...
- C语言基础:指针初级(补充) 分类: iOS学习 c语言基础 2015-06-10 21:54 19人阅读 评论(0) 收藏
结构体指针:指向结构体指针的变量的指针. 结构体指针指向结构体第一个成员变量的首地址 ->: 指向操作符 定义的指针变量必须指向结构体的首地址,才可以使用 -> 访问结构体成员变量 ...
- 移动端js模拟截屏生成图片并下载功能的实现方案
一.根据PM需求如下: 移动端wap 实现将二维码生成图片下载至用户手机相册保存 二.根据现有思路: 1.使用第三方工具html2canvas,将页面中指定范围的dom转换为canvas 2.随后使用 ...