//实例说明:数据大约8173条,显示在DataGridView上 //以下采用两种方法: //第一种采用DataSource的方式赋值,显示到dataGridView1 //第二种方式采用foreach循环遍历逐行赋值,显示到dataGridView2上 //优缺点: //第一种,显示速度快,只能显示数据源中的数据,不够灵活 //第二种,显示的数据灵活,数据量大时,填充数据慢 //1.获取数据 DataTable dt = new DataTable(); dt = GetTargetDatas(); //2.赋值,第一种方法 FillDataGridViewWithDataSource(dataGridView1, dt); //2.赋值,第二种方法 FillDataGridViewWithForeach(dataGridView2, dt);
private void FillDataGridViewWithDataSource(DataGridView dataGridView,DataTable dTable) { //1.清空旧数据 dataGridView.Rows.Clear(); //2.填充新数据 if (dTable != null && dTable.Rows.Count > 0) { //设置DataGridView列数据 dataGridView.Columns["ITEM_NO"].DataPropertyName = "ITEM_NO"; dataGridView.Columns["ITEM_NAME"].DataPropertyName = "ITEM_NAME"; dataGridView.Columns["INPUT_CODE"].DataPropertyName = "INPUT_CODE"; //设置数据源,部分显示数据 dataGridView.DataSource = dTable; dataGridView.AutoGenerateColumns = false; } }
private void FillDataGridViewWithForeach(DataGridView dataGridView, DataTable dTable) { //1.清空旧数据 dataGridView.Rows.Clear(); //2.赋值新数据 foreach (DataRow row in dTable.Rows) { int index = dataGridView.Rows.Add(); dataGridView.Rows[index].Cells["ITEM_NO2"].Value = row["ITEM_NO"]; dataGridView.Rows[index].Cells["ITEM_NAME2"].Value = row["ITEM_NAME"]; dataGridView.Rows[index].Cells["INPUT_CODE2"].Value = row["INPUT_CODE"]; } }
总结:显示效果相同,第一种速度快,不够灵活,第二种显示数据灵活但是速度不快