Code Bye

C#怎么样将数据库中的数据和图片同时显示在datagridview控件中。windows form的

本人数据库中的数据有4列,三列数据,一列图片。 本人想在datagridview控件中同时显示,前3列数据,最后一列图片。数据库里的图片是以二进制形式保存的。datagridview控件中显示图片的那列最好是缩略图,然后在图片上添加链接显示原图怎么实现。
解决方案

5

5

还添加链接?又不是从URL获取的网络图片,哪来的链接啊
表格里加个自定义列,格式为image就行了.

5

5

<asp:GridView ID="d" runat="server" AutoGenerateColumns="False"  AutoGenerateColumns="False" DataKeyNames="id" OnRowDataBound="GridView1_RowDataBound">
    <Columns>
        <asp:BoundField Field="title"/>
        <asp:BoundField Field="test"/>
        <asp:TemplateField></asp:TemplateField>
    </Columns>
</asp:GridView>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType == DataControlRowType.DataRow)
   {
         int id = int.Parse(d.DataKeys[e.Row.RowIndex].Value.ToString());
                Image img = d.Rows[e.Row.RowIndex].FindControl("img") as Image;
                if (img != null)
                {
                    img.ImageUrl = "test.aspx?id="+id;
                }
   }
}
test.aspx.cs 加载事件
                //根据id读取图片字段
                string str = "server=X;database=X;uid=X;pwd=X";
                string sql = "select image from ddd where id="+Request["id"];
                SqlConnection con = new SqlConnection(str);
                con.Open();
                SqlCommand cmd = new SqlCommand(sql, con);
                SqlDataReader sdr = cmd.ExecuteReader();
                if (sdr.HasRows)
                {
                    sdr.Read();
                    byte[] bytes = (byte[])sdr["pic"];
                    MemoryStream ms = new MemoryStream(bytes);
                    Bitmap bmp = new Bitmap(30, 30);//缩略图大小
                    //百度MemoryStream生成验证码返回图片格式
                }
                
                
                sdr.Close();
                con.Close();

不是什么机密图片搞什么二进制 直接存图片地址不就行了

5

页面
<asp:GridView ID="d" runat="server" AutoGenerateColumns="False" DataKeyNames="id" OnRowDataBound="GridView1_RowDataBound">
    <Columns>
        <asp:BoundField DataField="id"/>
        <asp:BoundField DataField="name"/>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Image ID="img" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

5

首先datagridview的列格式是本人随便定义扩展的,你弄个treeview放里面都行。所以,你的问题就很好解决了,你本人扩展一种列出来不就行了,你想里面放个可交互的游戏都行

10

引用 5 楼 huier513 的回复:

怎么将本人的数据库中的图片列和自定义的列绑定啊,
可以给几行关键的代码,本人很多代码看不懂。

关键就是通过 “test.aspx?id=”+id  这个地址。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#怎么样将数据库中的数据和图片同时显示在datagridview控件中。windows form的