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 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试