DataGridView數據綁定

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;
        }


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章