已有56人关注
“在分析完成之前遇到流结尾”应该怎么解决?
发表在C#图书答疑 2018-05-12 悬赏:1 学分 《C#项目开发实战入门》第3章 快递单打印精灵——电商最佳拍档
是否精华
版块置顶:

先将图片用二进制的方式存入数据库(自己写的sql语句,不通过datagridview保存)

blob.png

然后将二进制图片反序列化时不能显示存入的图片(通过datagridview 取图片)

blob.png

blob.png

这样怎么能正常显示数据库图片呢?谢谢老师了

分享到:
精彩评论 2
小禾斗
学分:7308 LV13
TA的每日心情
奋斗
2017-04-21 14:00:25
2018-05-14
沙发

读者朋友:

  您好,使用下面代码:

向数据表中添加二进制信息

01  private bool AddInfo(string strName, string strImage)

02  {

03      sqlcon = new SqlConnection(strCon); //创建数据库连接对象

04      FileStream FStream = new FileStream(//创建文件流对象

05          strImage, FileMode.Open, FileAccess.Read);

06      BinaryReader BReader = new BinaryReader(FStream); //创建二进制流对象

07      byte[] byteImage = BReader.ReadBytes((int)FStream.Length); //得到字节数组

08      SqlCommand sqlcmd = new SqlCommand(   //创建命令对象

09          "insert into tb_Image(name,photo) values(@name,@photo)", sqlcon);

10      sqlcmd.Parameters.Add("@name", //添加参数并赋值

11          SqlDbType.VarChar, 50).Value = strName;

12      sqlcmd.Parameters.Add("@photo",   //添加参数并赋值

13          SqlDbType.Image).Value = byteImage;

14      sqlcon.Open();    //打开数据库连接

15      sqlcmd.ExecuteNonQuery();//执行SQL语句

16      sqlcon.Close();   //关闭数据库连接

17      return true; //方法返回布尔值

18  }

显示数据库中存储的二进制图像:

01  //使用数据库中存储的二进制图片实例化内存数据流

02  MemoryStream MStream = new MemoryStream((byte[])myds.Tables[0].Rows[0][2]);

pictureBox1.Image = Image.FromStream(MStream);  //显示


逩跑の猴子_1525171398
学分:7 LV1
2018-05-14
板凳

小禾斗 发表于2018-05-14 14:03

读者朋友:

  您好,使用下面代码:

向数据表中添加二进制信息

01  private bool AddInfo(string strName, string strImage)

02  {

03      sqlcon = new SqlConnection(strCon); //创建数据库连接对象

04      FileStream FStream = new FileStream(//创建文件流对象

05          strImage, FileMode.Open, FileAccess.Read);

06      BinaryReader BReader = new BinaryReader(FStream); //创建二进制流对象

07      byte[] byteImage = BReader.ReadBytes((int)FStream.Length); //得到字节数组

08      SqlCommand sqlcmd = new SqlCommand(   //创建命令对象

09          "insert into tb_Image(name,photo) values(@name,@photo)", sqlcon);

10      sqlcmd.Parameters.Add("@name", //添加参数并赋值

11          SqlDbType.VarChar, 50).Value = strName;

12      sqlcmd.Parameters.Add("@photo",   //添加参数并赋值

13          SqlDbType.Image).Value = byteImage;

14      sqlcon.Open();    //打开数据库连接

15      sqlcmd.ExecuteNonQuery();//执行SQL语句

16      sqlcon.Close();   //关闭数据库连接

17      return true; //方法返回布尔值

18  }

显示数据库中存储的二进制图像:

01  //使用数据库中存储的二进制图片实例化内存数据流

02  MemoryStream MStream = new MemoryStream((byte[])myds.Tables[0].Rows[0][2]);

pictureBox1.Image = Image.FromStream(MStream);  //显示


老师您好,我还是不很明白

1)第一段代码应该是一种方法吧,但是应该怎么引用呢?我现在是直接放在窗体设计的代码里,试着引用但是都不对。

blob.png

2)显示储存时的代码里myds应该修改成什么?

blob.png

3)我现在上传照片的方法是这样,和您讲的方法中的创建文件流会有影响吗?

blob.png

我也是第一次用C#做程序,希望老师能讲再详细些,麻烦老师了!

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照