RainyNight_WC 2015-04-21 17:34 采纳率: 0%
浏览 3371

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 中发生,但未在用户代码中进行处理
其他信息: 未将对象引用设置到对象的实例。
求大神指点呀~~~

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2015-04-22 00:58
    关注

    干嘛不直接存储图片文件到硬盘,数据库存图片路径和地址就好了

    读2进制数据流也不是你这样读的吧。。

     //str = myds.Tables["物品类"].Rows[0]["缩略图"].ToString();
    byte[] Byte = (byte[]) myds.Tables["物品类"].Rows[0]["缩略图"];
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器