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)

posted @ 2023-09-07 18:06  yinghualeihenmei  阅读(431)  评论(0编辑  收藏  举报