向DataGridView控件添加数据

在Winform中向DataGridView控件添加数据很常用到,现总结3种填充DataGridView方法:


1.利用SqlDataAdapter对象向DataGridView中添加数据 
关键代码:(可以将该代码放到窗体加载事件的方法中)

using (SqlDataAdapter da = new SqlDataAdapter("select * from Product", DBService.Conn))
{
      DataSet ds = new DataSet();
      da.Fill(ds);
      this.dataGridView1.DataSource = ds.Tables[0];
}

2. 利用SqlDataReader填充DataGridView 

关键代码:

 //使用SqlDataReader填充DataGridView
using (SqlCommand command = new SqlCommand("select * from product", DBService.Conn))
{
      SqlDataReader dr = command.ExecuteReader();
      BindingSource bs = new BindingSource();
      bs.DataSource = dr;
      this.dataGridView1.DataSource = bs;
}
备注:在很多情况下,BindingSource对象起到一个过渡的作用,因为SqlDataReader对象直接赋给DataGridView

时,不能正常显示数据,所以利用BindingSource对象做一个绑定。

 

3.利用泛型集合向DataGridView中添加数据 
关键代码:(List<>泛型集合)

        private void Form1_Load(object sender, EventArgs e)
        {
            //使用List<>泛型集合填充DataGridView
            List<Student> students = new List<Student>();
            Student hat = new Student("Hathaway", "12", "Male");
            Student peter = new Student("Peter","14","Male");
            Student dell = new Student("Dell","16","Male");
            Student anne = new Student("Anne","19","Female");
            students.Add(hat);
            students.Add(peter);
            students.Add(dell);
            students.Add(anne);
            this.dataGridView1.DataSource = students;
        }


关键代码:(Dictionary<>泛型集合,与List<>泛型集合略有不同)
        private void Form1_Load(object sender, EventArgs e)
        {
            //使用Dictionary<>泛型集合填充DataGridView
            Dictionary<String, Student> students = new Dictionary<String, Student>();
            Student hat = new Student("Hathaway", "12", "Male");
            Student peter = new Student("Peter","14","Male");
            Student dell = new Student("Dell","16","Male");
            Student anne = new Student("Anne","19","Female");
            students.Add(hat.StuName,hat);
            students.Add(peter.StuName,peter);
            students.Add(dell.StuName,dell);
            students.Add(anne.StuName,anne);
     //在这里必须创建一个BindIngSource对象,用该对象接收Dictionary<>泛型集合的对象
            BindingSource bs = new BindingSource();
     //将泛型集合对象的值赋给BindingSourc对象的数据源
            bs.DataSource = students.Values;
            this.dataGridView1.DataSource = bs;
        }

你可能感兴趣的:(list,object,WinForm,dell,Dictionary,dataset)