属性
说明
Columns
包含的列的集合
DataSource
DataGridView 的数据源
ReadOnly
是否可以编辑单元格
DataGridView 中各列的主要属性
属性
说明
DataPropertyName
绑定的数据列的名称
HeaderText
列标题文本
Visible
指定列是否可见
Frozen
指定水平滚动DataGridView时列是否移动
ReadOnly
指定单元格是否为只读
1 private SqlDataAdapter dataAdapter;  // 数据适配器
2 private DataSet dataSet;  // 数据集
3
4      
5   
6 /////////////////////////////////////////////////////////////////////////////////
7   
8
9         // 窗体加载时,填充数据集
10         private void QuestionListForm_Load(object sender, EventArgs e)
11          {
12             // 查询数据库用的 SQL 语句
13             string sql = "SELECT QuestionID, Question, OptionA,
OptionB,OptionC,OptionD,Answer, Difficulty FROM Question
";
14             // 创建数据集对象
15              dataAdapter = new SqlDataAdapter(sql, DBHelper.connection);
16             // 创建数据集对象
17              dataSet = new DataSet("MySchool");
18
19             // 填充数据集
20              dataAdapter.Fill(dataSet,"Question");   
21          
22             // 指定 DataGridView 的数据源
23              dgvQuestion.DataSource = dataSet.Tables["Question"];
24          }
25
26         private void btnClose_Click(object sender, EventArgs e)
27          {
28             this.Close();
29          }
30
31         // 把修改过的数据提交到数据库
32         private void btnUpdate_Click(object sender, EventArgs e)
33          {
34             // 向用户确认操作
35              DialogResult result = MessageBox.Show("确实要保存修改吗?",
"操作提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
36
37             if (result == DialogResult.Yes)
38              {
39                 // 自动生成用于更新的命令
40                  SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter);
41
42                 // 将数据集中修改过的数据,提交到数据库
43                  dataAdapter.Update(dataSet, "Question");
44              }            
45          }
46
47         // 重新填充数据集
48         private void btnReFresh_Click(object sender, EventArgs e)
49          {
50             // 清空原来表中的数据
51              dataSet.Tables["Question"].Clear();
52             // 填充数据集
53              dataAdapter.Fill(dataSet,"Question");