问题描述
- asp.net关于根据gridview中取到的值从数据库中读取image类型的图片信息并显示
- 前台代码
<asp:GridView ID=""GridView1"" runat=""server"" AutoGenerateColumns=""False"" GridLines=""Vertical"" OnRowCommand=""GridView1_RowCommand""> <Columns> <asp:BoundField DataField=""物品编号"" HeaderText=""物品编号"" ReadOnly=""true""></asp:BoundField> <asp:ButtonField HeaderText=""显示图片"" Text=""显示图片"" CommandName=""Select"" /> </Columns> </asp:GridView> <asp:Label runat=""server"" CssClass=""col-md-2 control-label"" ID=""Text""></asp:Label> <p></p> <div class=""row""> <div class=""col-md-4""> <p>缩略图</p> <asp:Image runat=""server"" ID=""pic"" /> </div> </div>
后台代码
public System.Drawing.Image ReturnPhoto(byte[] streamByte) { System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte); System.Drawing.Image img = System.Drawing.Image.FromStream(ms); return img; } protected void GridView1_RowCommand(object source GridViewCommandEventArgs e) { if (e.CommandName == ""Select"") { int i = Convert.ToInt16(e.CommandArgument.ToString()); string ID = this.GridView1.Rows[i].Cells[0].Text; Text.Text = ID; sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings[""DefaultConnection""].ConnectionString); string sqlstr = ""select * from 物品表 where 物品编号="" + ID; SqlDataAdapter myda = new SqlDataAdapter(sqlstr sqlcon); DataSet myds = new DataSet(); myda.Fill(myds物品表""); String str; if (myds.Tables[""物品表""].Rows[0][""缩略图""] != null) { str = myds.Tables[""物品类""].Rows[0][""缩略图""].ToString(); byte[] Byte = System.Text.Encoding.Default.GetBytes(str); System.Drawing.Image img = ReturnPhoto(Byte); img.Save(""~/images/slt.jpg""); pic.ImageUrl = ""~/images/slt.jpg""; } } }
我用web.config中链接的数据库,现在想点击表格中的“显示图片”选项在下面的image控件中显示该行物品编号所对应的图片。可是VS报错:
“System.NullReferenceException”类型的异常在 App_Web_b3knhkus.dll 中发生,但未在用户代码中进行处理
其他信息: 未将对象引用设置到对象的实例。
求大神指点呀~~~
解决方案
干嘛不直接存储图片文件到硬盘,数据库存图片路径和地址就好了
读2进制数据流也不是你这样读的吧。。
//str = myds.Tables[""物品类""].Rows[0][""缩略图""].ToString();byte[] Byte = (byte[]) myds.Tables[""物品类""].Rows[0][""缩略图""];
时间: 2025-01-26 22:02:03