代码之家  ›  专栏  ›  技术社区  ›  user240141

从SQLite数据库在DataGridViewImageColumn[WinForm]中显示图像

  •  0
  • user240141  · 技术社区  · 14 年前

    I have a sqlite db from where i am retrieving images. I have to display those images into a windows datagrid. For binding , I have Class Called COntacts , given below

    namespace ContactManager.Core
    {
        public class Contacts
        {
            private long _id = 0;
    
            public long Id
            {
                get { return _id; }
                set { _id = value; }
            }
            private string _Name = string.Empty;
    
            public string Name
            {
                get { return _skypeName; }
                set { _skypeName = value; }
            }
            private string _displayName = string.Empty;
    
            public string DisplayName
            {
                get { return _displayName; }
                set { _displayName = value; }
            }
            private long _birthday = 0;
    
            public long BirthDay
            {
                get { return _birthday; }
                set { _birthday = value; }
            }
    
            private string _province = string.Empty;
    
            public string Province
            {
                get { return _province; }
                set { _province = value; }
            }
            private long _phone_home = 0;
    
            public long Phone_Home
            {
                get { return _phone_home; }
                set { _phone_home = value; }
            }
            private long _phone_mobile = 0;
    
            public long Phone_Mobile
            {
                get { return _phone_mobile; }
                set { _phone_mobile = value; }
            }
    
            private string _mood_text = string.Empty;
    
            public string Mood_Text
            {
                get { return _mood_text; }
                set { _mood_text = value; }
            }
    
           private byte[] _avatar_image = new byte[4096];
           public byte[] Avatar_Image
           {
               get{return _avatar_image;}
               set{_avatar_image = value;}
           }
    
    
        }
    }
    

    所以我的第一个问题是,我应该在这个contact类中创建什么类型的属性来保存图像数据。 我正在运行时创建DataGridViewColumns。代码如下

    DataGridViewImageColumn dgvImColAvatar = new DataGridViewImageColumn();
    dgvImColAvatar.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    dgvImColAvatar.HeaderText = "Avatar";
    dgvImColAvatar.DataPropertyName = "Avatar";
    

    but when I execute application it shows me some TargetInvocation exeception with NullReference Exception too. 所以请帮助我从数据库中检索图像数据,并使用类、属性和集合绑定它。在它们之间我正在使用 MapperBase<T> 自动为属性赋值。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Adam Houldsworth    14 年前

    Aland Li's response details how you need to handle CellFormatting in order to create an image for the grid:

    http://social.msdn.microsoft.com/Forums/en/winformsdesigner/thread/2343891f-59ea-482f-8a5e-e9aa68eacd81