DataGridView数据绑定

来源:互联网 发布:淘宝官方集运 费用 编辑:程序博客网 时间:2024/03/29 03:13

DataGridView是一个数据绑定控件.现在说下DataGridView和SqlDataReader相结合的用法....

        因为SqlDataReader是一条一条的读取数据的,不能直接把read()到的一条结果放到DataGridView中,所以就需要把read到的所有结果放到一个集合中.比如dataset ,datatable,list等.这里推荐使用list.因为dataset和datatable都是弱类型的,而list集合相对是强类型的.

        用类做List的参数是比较合适的

例子(查询tblperson表中的数据):

申明类Person

 

class Person    {        //数据绑定的时候只绑定属性,不绑定字段        public int autoId { get; set; }        public string  uname { get; set; }        public int uage { get; set; }        public int uheight { get; set; }    }


 

 private void button1_Click(object sender, EventArgs e)        {            List<Person> list=new List<Person>();            string connstr = "data source=.;initial catalog=itcast2013;integrated security=true";            using (SqlConnection conn = new SqlConnection(connstr))            {                string sqlstr = "select * from tblperson";                using (SqlCommand comd = new SqlCommand(sqlstr, conn))                {                    conn.Open();                    using (SqlDataReader rd = comd.ExecuteReader())                    {                        if (rd.HasRows)                        {                            while (rd.Read())                            {                                //先把表中数据存数到"集合".-->放到list<>中                                Person model = new Person(); 
                                 //创建一个Person类来存放每条数据    注意:在创建Person类的时候一定要把每列都申明成属性而不是字段..因为在数据绑定的时候只绑属性,不绑字段
                                model.autoId = rd.GetInt32(0);                                model.uname = rd.IsDBNull(1) ? "" :rd.GetString(1);                                model.uage = rd.IsDBNull(2) ?-1 :rd.GetInt32(2);                                 //在使用Getxxx来获取列数据的时候不能有空值.所以要通过isdbnull来进行一个判断(三元表达式)
                                model.uheight = rd.IsDBNull(3) ? -1 :rd.GetInt32(3);                                list.Add(model);
                                //将Person类的一个对象model传给list集合
                            }                        }                    }                }            }            this.dataGridView1.DataSource = list;        }


 

 

原创粉丝点击