u 实验步骤(5):
用鼠标双击所有 Button 控件,进入.cs文件编辑状态准备进行开发。代码加下:
//========== 执行主界面功能================
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsApplication1
{
    public partial class Form10 : Form
    {
        public Form10()
        {
            InitializeComponent();
        }
        DataBase mydatabase = new DataBase();
        ///
        /// 添加
        ///
        private void button1_Click(object sender, EventArgs e)
        {
            int i=mydatabase.ExecuteSQL("insert into student(sno,sname,class) values("+textBox1.Text.Trim()+",'"+ textBox2.Text.Trim() +"','"+ textBox3.Text.Trim() +"')");
            if (i > 1)
            {
                MessageBox.Show(" 成功插入" ," 信息" );
            }
        }
        ///
        /// 自定义方法:填充combox控件之中的内容
        ///
        private void fillcombox()
        {
            ArrayList al = mydatabase.GetListArray("select sno from student", 0);
            foreach (int sno in al)
            {
                comboBox1.Items.Add(sno.ToString());
            }
            this.comboBox1.SelectedIndex = 0;
        }
        ///
        /// 表单初始化事件:加载fillcombox()方法,以填充combox控件之中的内容
        ///
        private void Form10_Load(object sender, EventArgs e)
        {
            fillcombox();
        }
    }
}

4-2          DataGridView控件 — 显示和操作数据

4-2节中我们主要学习并掌握了以下几个知识点,包括:
n DataSet 对象内表示的数据是数据库的部分或全部的断开式内存副本
n DataAdapter 对象用来填充数据集和用来更新数据集到数据库,这样方便了数据库和数据集之间的交互
n 类型化数据集对象是 DataSet 类的派生类的实例,这些类都基于 XML 结构
n DataTable 表示一个内存数据表,而 DataColumn 表示 DataTable 中列的结构
n DataView DataTable中存储的数据的表示层
n DataReader 对象提供只进、只读和连接式数据访问,并使用专用的数据连接
n DataReader 对象提供检索强类型化数据的方法
u 本节学习目标:
n 了解 DataGridView 控件常见的属性和方法
n 掌握 DataGridView 的数据绑定
n 掌握在 DataGridView 控件中插入、更新和删除数据
n 掌握定制 DataGridView 界面

4-3-1  DataGridView控件概述

1.为什么使用DataGridView

我们在实际项目研发中经常会遇到这样的问题:怎样高效的显示 DataSet 对象中的数据呢? DataSet 对象中有若干数据表 DataTable ,每个 DataTable 对象中包含若干表示数据记录的 DataRow 对象。这种典型的二维结构表信息显然通过电子表格的形式呈现出来,数据显示的效果是最好的。
在前面章节里,应用程序显示 DataSet 对象中的数据是通过在窗体里每次显示一条记录的方式,即每次显示一个 DataRow 对象内容。这时由若干个控件分别显示 DataRow 对象的各个字段,但每次只能显示一条记录信息。如图450所示:
4-2 ADO.NET-查询和检索数据7_第1张图片
4-50 显示单条记录的窗体图
但怎样才能把DataSet对象中某个数据表 DataTable 里的所有数据记录一并全部显示在一个窗体界面上呢?如图451所示:
4-2 ADO.NET-查询和检索数据7_第2张图片
4-71 显示全部记录的窗体图
这里就用到 DataGridView 控件,仅仅一个 DataGridView 控件就可以显示数据表 DataTable 里的全部数据记录。 DataGridView 控件的工作示意如图452所示:
4-2 ADO.NET-查询和检索数据7_第3张图片
4-52 DataGridView 控件的工作示意图
从图452中可以看出,数据集 DataSet 中的某个数据表可以整个显示在某个窗体界面上,非常方便用户查看。由此可以看出 DataGridView 控件的强大方面,该控件的特点主要表现为:
n 强大而灵活地显示数据
n 轻松定义控件外观
n Excel 表格一样方便
n 一行代码实现数据绑定
n 可视化操作

2.DataGridView控件的简介

DataGridView . NET 2.0中的一个新控件,是针对. NET 1. x 中功能较差的标准 DataGrid 控件设计的。有许多改进方面,包括: DataGridView 支持大量自定义和细致的格式设置、灵活的大小调整和选择、更好的性能以及更丰富的事件模型。
DataGridView 控件提供一种强大而灵活的以表格形式显示数据的方式。可以使用 DataGridView 控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。
可以用很多方式扩展 DataGridView 控件,以便将自定义行为内置在应用程序中。例如,可以采用编程方式指定自己的排序算法,以及创建自己的单元格类型。通过选择一些属性,可以轻松地自定义 DataGridView 控件的外观。可以将许多类型的数据存储区用作数据源,也可以在没有绑定数据源的情况下操作 DataGridView 控件。
在不使用 DataGridView 控件来显示数据情况下,一般使用多个可视组件来显示数据,过程示意如图453所示:
4-2 ADO.NET-查询和检索数据7_第4张图片
4-53 多个可视组件显示记录数据工作示意图
这样有很多不便利的方面,主要表现为:
n 没法同时对多个记录信息进行比较。
n 需要配置多个可视组件,工作复杂。
n 多个可视组件的数据绑定,操作编码工作量大。
n 界面不容易规划美观。
n 难以控制。
VS . NET 开发平台中的 DataGridView 控件成为有效数据使用者。 DataGridView 控件是 Winform 中最通用、最强大和最灵活的数据控件。 DataGridView 控件的工作原理如图454所示:
4-2 ADO.NET-查询和检索数据7_第5张图片
4-54 DataGridView控件的工作原理示意图
从图454中可以看出: DataGridView 控件可以与数据集等数据源进行相互绑定。数据绑定是指将数据源的元素映射到图形界面组件,从而该组件可以自动使用这些数据。这个绑定过程可以在窗体设计阶段通过设置 DataGridView 控件的 DataSource DataMember 等属性完成,也可以在程序中对其绑定编码直至运行时完成绑定。进行数据绑定的 DataGridView 控件与数据源有相同的数据列。程序运行后,数据源中被填充了数据, DataGridView 控件就会立即显示数据源中的数据。此外, DataGridView 控件还支持编辑功能,当某数据记录需要修改时,可以在 DataGridView 控件中直接修改数据,数据源中的数据也会得到相应的修改。

3.DataGridView控件的使用

1 DataGridView 控件的属性
DataGridView 控件常用的属性请参见表428所示:
4-28 DataGridView 控件常用属性表
属性
说明
AllowUserToAddRows
获取或设置一个值,该值指示是否向用户显示添加行的选项。
AllowUserToDeleteRows
获取或设置一个值,该值指示是否允许用户从DataGridView中删除行。
AllowUserToOrderColumns
获取或设置一个值,该值指示是否允许通过手动对列重新定位。
AllowUserToResizeColumns
获取或设置一个值,该值指示用户是否可以调整列的大小。
AllowUserToResizeRows
获取或设置一个值,该值指示用户是否可以调整行的大小。
DataSource
获取或设置DataGridView所显示数据的数据源
Columns
获取一个包含控件中所有列的集合。
(未完待续)