在mysql 中用Blob数据类型存储的图片,怎么不能取出来啊?

A36982 2013-02-03 01:50:17
byte[] buffer = (byte[])dt.Rows[0].ItemArray[4];
MemoryStream ms = new MemoryStream(buffer);
pictureBox1.Image = Image.FromStream(ms);
提示无法将DBNull对象强制转换成Byte[]类型,是一个什么原因?该如何插入图片呢?
...全文
320 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
伤痕累累 2013-02-03
  • 打赏
  • 举报
回复
引用 4 楼 A36982 的回复:
引用 3 楼 wyj23114 的回复:引用 2 楼 A36982 的回复:引用 1 楼 hjywyj 的回复:if(dt.Rows[0].ItemArray[4]!=DBNull.Value) 插入图片: using (MySqlConnection con = new MySqlConnection(strCon)) { ……
插入一个空行也不一定,看一下路径有没有错,取出来的byte[]是不是空的
A36982 2013-02-03
  • 打赏
  • 举报
回复
但是查看数据库的时候发现blob这一栏是空的啊。为什么呢?
A36982 2013-02-03
  • 打赏
  • 举报
回复
引用 3 楼 wyj23114 的回复:
引用 2 楼 A36982 的回复:引用 1 楼 hjywyj 的回复:if(dt.Rows[0].ItemArray[4]!=DBNull.Value) 插入图片: using (MySqlConnection con = new MySqlConnection(strCon)) { using (MySq……
不是啊。测试的时候res是等于1的。也就是说已经插入了一条数据。
伤痕累累 2013-02-03
  • 打赏
  • 举报
回复
引用 2 楼 A36982 的回复:
引用 1 楼 hjywyj 的回复:if(dt.Rows[0].ItemArray[4]!=DBNull.Value) 插入图片: using (MySqlConnection con = new MySqlConnection(strCon)) { using (MySqlCommand cmd = con……
断点看一下插入的时候 ms.GetBuffer()是什么,res是不是<=0
A36982 2013-02-03
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
if(dt.Rows[0].ItemArray[4]!=DBNull.Value)
插入图片: using (MySqlConnection con = new MySqlConnection(strCon)) { using (MySqlCommand cmd = con.CreateCommand()) { cmd.CommandText = "insert into tb_worker values('318','朱攀11','软工','研 发',@headimag,'1223')"; con.Open(); cmd.Parameters.Add("@headimag", SqlDbType.Image); MemoryStream ms = new MemoryStream(); Image.FromFile("P1060297.jpg").Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); cmd.Parameters["@headimag"].Value = ms.GetBuffer(); ms.Close(); int res = cmd.ExecuteNonQuery(); Console.WriteLine("成功插入了" + res + "条"); } } 取图片: using (MySqlConnection con = new MySqlConnection(strCon)) { using (MySqlCommand cmd = con.CreateCommand()) { con.Open(); cmd.CommandText = "select * from tb_worker where Epc='" + s + "'"; DataTable dt = new DataTable(); MySqlDataAdapter sda = new MySqlDataAdapter(cmd); int fill = sda.Fill(dt); if (dt.Rows[0].ItemArray[4] != DBNull.Value) { byte[] buffer = (byte[])dt.Rows[0].ItemArray[4]; MemoryStream ms = new MemoryStream(buffer); pictureBox1.Image = Image.FromStream(ms); } 帮忙看看有什么问题啊?
  • 打赏
  • 举报
回复
if(dt.Rows[0].ItemArray[4]!=DBNull.Value)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧