问题描述
获取不了存储的二进制图像报错提示:转化不对就是图像显示不对name显示正常用二进制存取图像然后再将图像显示出来数据库就有2列namephoto第一步:用二进制存储图片。代码如下:sqlcon=newSqlConnection(strCon);sqlcon.Open();FileStreamFStream=newFileStream(strImage,FileMode.Open,FileAccess.Read);BinaryReaderBReader=newBinaryReader(FStream);byte[]byteImage=BReader.ReadBytes((int)FStream.Length);SqlCommandsqlcmd=newSqlCommand("insertintotb_image(name,photo)values(@name,@photo)",sqlcon);sqlcmd.Parameters.Add("@name",SqlDbType.VarChar,50).Value=strName;sqlcmd.Parameters.Add("@photo",SqlDbType.Image).Value=byteImage;sqlcmd.ExecuteNonQuery();sqlcon.Close();第二步,点击datagridview中的任一单元格显示namephotostringstrName=dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();if(strName!=""){sqlcon=newSqlConnection(strCon);sqlcon.Open();sqlda=newSqlDataAdapter("select*fromtb_imagewherename='"+strName+"'",sqlcon);myds=newDataSet();sqlda.Fill(myds);//获取数据库中名字信息传给了text控件让其显示出来textBox1.Text=myds.Tables[0].Rows[0][0].ToString();//获取数据库中图片的二进制代码将其转化成图片MemoryStreamMStream=newMemoryStream((byte)myds.Tables[0].Rows[0][1]);pictureBox1.Image=Image.FromStream(MStream);
解决方案
解决方案二:
读文件的代码不好,那3行不要了,这样就好:byte[]byteImage=File.ReadAllBytes(strImage);