请看如下代码:
private
void InitializeDataGridView()
{
try
{
//
建立DataGridView控件
dataGridView1.Dock = DockStyle.Fill;
//
自动生成DataGridView列
dataGridView1.AutoGenerateColumns = true;
//
建立数据源
bindingSource1.DataSource = GetData("Select * From Products");
dataGridView1.DataSource = bindingSource1;
//
自动调整可视化行
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
//
设置DataGridView控件的边界
dataGridView1.BorderStyle = BorderStyle.Fixed3D;
//
当用户使用DataGridView控件时,它会成为可编辑模式
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
}
catch (SqlException e)
{
MessageBox
.Show("To run this sample replace connection.ConnectionString"+ " with a valid connection string to a Northwind"+" database accessible to your system.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
System.Threading.Thread.CurrentThread.Abort();
}
}
private static DataTable GetData(string sqlCommand)
{
string connectionString = "Integrated Security=SSPI;" + "Persist Security Info=False;" + "Initial Catalog=Northwind;Data Source=localhost";
SqlConnection northwindConnection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
SqlDataAdapter
adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataTable
table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
return table;
}
代码中
dataGridView1
.
DataSource
被设置为
bindingSource1
。
(2)
DataGridView
控件的创建
向窗体添加
DataGridView
控件过程如图4-55所示:
图4-55 向窗体添加DataGridView控件图
图4-55描述的是向窗体添加
DataGridView
控件过程。在工具箱中选择“数据”选项卡,找到
DataGridView
控件,点击后向窗体拖放,在设计窗口中出现
DataGridView
控件。默认的
DataGridView
控件的对象名为
dataGridView1
,右击
dataGridView1
控件选择“属性”,在属性窗口可以对对象
dataGridView1
的属性进行设置。主要是可以对
DataSource
、
DataMember
等属性进行配置。也可以在后续代码中进行设置。这样创建出来的对象
dataGridView1
就可以在后续程序中与数据绑定进行应用。当然,除了利用可视化界面创建
DataGridView
控件这种方法以外,还可以利用编程的方法。编程这种方法这里不过多叙述。
(3)为
DataGridView
控件绑定数据
可以与
DataGridView
控件进行绑定的数据源包括:
DataSet
;
DataView
;
DataTable
;数组;列表。进行数据绑定的方法有三种:
n
方法一,直接用
DataView
对象或
DataTable
对象为
DataGridView
控件的
DataSource
属性进行赋值,见如下代码示例:
dbgPassenger.DataSource = objDataSet.Tables["Passenger"].DefaultView;
n
方法二,用
DataSet
对象为
DataGridView
控件的
DataSource
属性进行赋值,用
DataSet
对象
中的
DataTable
对象为
DataGridView
控件的
DataMember
属性赋值,见如下代码示例:
dbgBooks.DataSource = objDataSet;
dbgBooks.DataMember = "Titles";
n
方法三,调用
DataGridView
控件的
SetDataBinding
()方法,将
DataSet
对象
及
DataSet
对象中的
DataTable
对象作为第一、第二参数传递给方法完成数据绑定,见如下代码示例:
dbgBooks.SetDataBinding(objDataSet, "Titles");
4.案例学习:DataGridView控件绑定数据案例。
u
实验步骤(1):
向一窗体拖拽一个
DataGridView
控件。
u
实验步骤(2):
数据库的设计参见图4-56:
图4-56 数据库设计图
数据库为
school1
,仅用了两个表,
mz
是表示民族的表,
student
是表示学生的表。具体字段设计情况请参见图4-56。数据库环境是
SQL
Server
2005
。
u
实验步骤(3):
鼠标右击项目,在弹出的菜单中选择“添加”、“新建项”,在弹出的“添加新项”窗体中选择“代码文件”,名称改为“
DataBase
.
cs
”,点击“添加”按钮,完成添加。该文件同前所示,此处不再复述。
u
实验步骤(4):
双击窗体,在
load
事件的处理方法里添加如下代码:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Data.SqlClient;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
namespace
WindowsApplication1
{
public partial class Form13 : Form
{
public Form13()
{
InitializeComponent();
}
DataBase mydatabase = new DataBase();
private void Form13_Load(object sender, EventArgs e)
{
/*
第一种方式:DataSet
DataSet ds = mydatabase.GetDataSet("select * from student");
dataGridView1.DataSource = ds.Tables[0];*/
//
第二种方式:DataTable
DataTable dt = mydatabase.GetDataTable("select * from student");
dataGridView1.DataSource = dt;
}
}
}
代码中有两种数据绑定方法可以被应用。其中第一种方法被注释掉了,如果想应用第一种方法,请去掉第一种方法的注释,并把第二种方法进行注释。程序运行后得到的效果如图4-57所示:
图4-57 DataGridView控件绑定数据执行效果图
5.通过DataGridView控件插入、更新和删除记录
前面提到,如果修改了
DataGridView
控件内的数据,或者添加、删除了一条数据记录。与其绑定的
DataSet
等数据源里相应的数据也会随着一起更新。但如何将这些数据更新发送到数据库以进行保存呢?如图4-58所示:
图4-58
DataGridView
控件内的数据更新保存示意图
DataGridView
控件内的数据一旦被更新,这个数据的回传和保存过程是通过
DataAdapter
.
Update
()方法来实现的。其工作过程原理如图4-59所示:
图4-59
DataGridView
控件内的数据更新保存工作原理图
图4-59叙述了被更新的数据又被回传和保存的过程。前面章节曾经提到数据集
DataSet
里的数据被修改后,回传、保存工作是通过
DataAdapter
.
Update
()方法来实现的。这里的应用原理也是一样的。当
DataGridView
控件内的数据做了任何修改,与其绑定的数据集里的数据也同时被修改。所以也要通过调用
DataAdapter
.
Update
()方法来实现
DataGridView
控件内的被更新数据的回传和保存工作。
DataAdapter
.
Update
()方法又是通过相应的执行
InsertCommand
、
UpdateCommand
、
DeleteCommand
这几个命令对象,并通过
SqlParameter
对象集合传递修改后的行数据给数据库的。
本文出自 “熊猫写程序” 博客,转载请与作者联系!