winform 下,gridview 如何绑定DataGridViewImageColumn
 FileStream fs = new FileStream(textBox3.Text, FileMode.Open, FileAccess.Read);
                    BinaryReader br =new BinaryReader(fs);
                    byte[] photo = br.ReadBytes((int)fs.Length);
                    br.Close();
                    fs.Close();
                   string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')";
                   MessageBox.Show(upimage);
                   additemobc.CommandText = upimage;
                   additemobc.Connection = objConnection;
                   additemobc.ExecuteNonQuery();
上面是我存到access图片的代码,问题是,为什么我绑定不到DataGridViewImageColumn列?我的DataGridViewImageColumn列是根据数据库中的字段自己生成的
 DataGridViewImageColumn daoimage=new DataGridViewImageColumn();                                            
daoimage.HeaderText=daojl.Tables[0].Rows[i][1].ToString();
daoimage.DataPropertyName = daojl.Tables[0].Rows[i][1].ToString();
                    
                                       dataGridView1.Columns.Add(daoimage);
然后在绑定另外的表,其他列都正常,能有数据,但是,不显示图像,哪里弄错了?用循环加图像的话,如果图片多会很慢,不是很好,

解决方案 »

  1.   

    daoimage.DataPropertyName = daojl.Tables[0].Rows[i][1].ToString(); 
    DataPropertyName这个属性是设置绑定数据库列名称的
      

  2.   

    你这样能把图形保存到数据库?结果是这个把.
    insert into img (图片,ID) values( 'System.Byte[]','x00003')
      

  3.   

    写一个静态的方法,输入是数据库里的数据,输出是Image对象在GridView里绑定Image对象
      

  4.   


    在实体类get  set方法里写就行
      

  5.   

     byte[] Serialize(object o)
            {
                MemoryStream ms = new MemoryStream();
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(ms, o);            return ms.ToArray();
            }        object DeSerialize(byte[] data)
            {
                MemoryStream ms = new MemoryStream(data);
                BinaryFormatter bf = new BinaryFormatter();
                return bf.Deserialize(ms);
            } public Image ModuleImage  //实体类属性
            {
                get 
                {
                    if (_ImageBytes == null)
                        return null;
                    else
                        return (Image)DeSerialize(_ImageBytes);
                     
                }
                set 
                {
                    if (value == null)
                        this._ImageBytes = null;
                    else
                        this._ImageBytes = Serialize(value); 
                } 
            }
      

  6.   

    <asp:TemplateField HeaderText="游戏缩略图">
                                                   
    <HeaderStyle  BackColor="#FFFDE3" Width="120px" Height="25px"/>
    <ItemTemplate>
           <asp:Image ID="imgGameImgPath" runat="server" Visible="false" ImageUrl='<%#GetURL(Eval("GameFilePath")) %>' />
    </ItemTemplate>
    <ItemStyle  CssClass="word_12_bla_chi"  />
    </asp:TemplateField>
      

  7.   

    winform的,不是asp.net的,
    你这样能把图形保存到数据库? 结果是这个把. 
    insert into img (图片,ID) values( 'System.Byte[]','x00003') 存到access里面显示的是长2进制数据,应该存进去了吧
     byte[] photo = br.ReadBytes((int)fs.Length); 
                        br.Close(); 
                        fs.Close(); 
                      string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')"; 
    没有区别吧
      

  8.   

    byte[] photo = br.ReadBytes((int)fs.Length); 
                        br.Close(); 
                        fs.Close(); 
                      string upimage="insert into img (图片,ID) values( '"+photo+"','x00003')"; 
    应该是保存不进去的. 
    你的长2进数应该是 System.Byte[]字符串的2进数
      

  9.   

    ?那么该如何将图片存进数据库?access
      

  10.   

    存路径不行,DataGridViewImageColumn 只能邦定2进制数据
      

  11.   

     Icon treeIcon = new Icon(this.GetType(), "a.ico");
               DataGridViewImageColumn iconColumn = new DataGridViewImageColumn ();
               iconColumn.Image = treeIcon.ToBitmap();
               iconColumn.Name = "a";
               iconColumn.HeaderText = "";
               dataGridView1.Columns.Insert(2, iconColumn);
    参考
      

  12.   

    CellFormatting可以处理,不过我现在觉得可能我的数据真没有存到数据库里
      

  13.   

    的确是没有把数据存入,一直以为存入sql采用Parameters.Add想不到access也用感谢zgke 也感谢其他帮忙的朋友