mysql blob读取_C# 读取mysql blob字段(两种方式)
https://blog.csdn.net/weixin_36487445/article/details/113424556读取Blob类型的数据
读取Blob类型相对来说比较容易,当获取了查询的结果集之后,使用getBlob()方法读取到Blob对象,然后调用Blob的getBinaryStream()方法得到输入流,再使用IO操作进行文件的写入操作即可。
第一种:使用MySqlDataReader
while (reader.Read())
{
//读取blob类型的字段
//long len = reader.GetBytes(3, 0, null, 0, 0);//3为blob字段的索引(索引从0开始算)
long len = reader.GetBytes(reader.GetOrdinal("blob字段名"), 0, null, 0, 0);
byte[] buffer = new byte[len];
len = reader.GetBytes(3, 0, buffer, 0, (int)len);
string content = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length);
}
第二种:使用DataSet
string sqlDataSet = "SELECT `id`,`name`,`accountBookType`,convert(`binary` using utf8) `binary` FROM temp_imgs_householdid";
DataSet ds = MySqlHelper.GetDataSet(connstr, CommandType.Text, sqlDataSet, null);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = ds.Tables[0].Rows[i];
string content = dr["binary"].ToString();
try
{
File.WriteAllBytes(@"E:\1.jpg", Convert.FromBase64String(content));//将base64转成图片
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
第二种方式,需要注意的是:在sql语句中,需要对blob字段,进行convert(`binary` using utf8)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了