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();
        /// <summary>
        /// 添加
        /// </summary>
        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("成功插入","信息");
            }
        }
        /// <summary>
        /// 自定义方法:填充combox控件之中的内容
        /// </summary>
        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;
        }
        /// <summary>
        /// 表单初始化事件:加载fillcombox()方法,以填充combox控件之中的内容
        /// </summary>
        private void Form10_Load(object sender, EventArgs e)
        {
            fillcombox();
        }
    }
}

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

4-2节中我们主要学习并掌握了以下几个知识点,包括:
nDataSet对象内表示的数据是数据库的部分或全部的断开式内存副本
nDataAdapter对象用来填充数据集和用来更新数据集到数据库,这样方便了数据库和数据集之间的交互
n类型化数据集对象是DataSet类的派生类的实例,这些类都基于XML结构
nDataTable表示一个内存数据表,而DataColumn表示DataTable中列的结构
nDataViewDataTable中存储的数据的表示层
nDataReader对象提供只进、只读和连接式数据访问,并使用专用的数据连接
nDataReader对象提供检索强类型化数据的方法
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-50 显示单条记录的窗体图
但怎样才能把DataSet对象中某个数据表DataTable里的所有数据记录一并全部显示在一个窗体界面上呢?如图451所示:
4-71 显示全部记录的窗体图
这里就用到DataGridView控件,仅仅一个DataGridView控件就可以显示数据表DataTable里的全部数据记录。DataGridView控件的工作示意如图452所示:
4-52 DataGridView控件的工作示意图
从图452中可以看出,数据集DataSet中的某个数据表可以整个显示在某个窗体界面上,非常方便用户查看。由此可以看出DataGridView控件的强大方面,该控件的特点主要表现为:
n强大而灵活地显示数据
n轻松定义控件外观
nExcel表格一样方便
n一行代码实现数据绑定
n可视化操作

2.DataGridView控件的简介

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

3.DataGridView控件的使用

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