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 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问
  • ¥15 初学者如何快速上手学习stm32?
  • ¥15 如何自动更换布娃娃图片上的衣服
  • ¥15 心理学eprime编程
  • ¥15 arduino esp8266开发
  • ¥15 stm32单片机通过485发送命令给驱动器控制电机转动,同样的代码f103可以控制电机转动,换到f407不能动了,但是用串口助手调试407显示发送的命令都是正确的,卡了好久了这是发送规则