ADO.NET中DataTable的应用

DataTable是ADO.NET 库中的核心对象,是一个临时保存数据的网格虚拟表(表示内存中数据的一个表)。

DataTable的对象包括DataSet和DataView

一、思维导图

 

 

二、知识点描述

    构造函数 

    DataTable()   不带参数初始化DataTable 类的新实例。 
    DataTable(string tableName)  
用指定的表名初始化DataTable 类的新实例。 
    
常用属性 
    CaseSensitive    
指示表中的字符串比较是否区分大小写。 
    ChildRelations   
获取此DataTable 的子关系的集合。 
    Columns             
获取属于该表的列的集合。 
    Constraints        
获取由该表维护的约束的集合。 
    DataSet               
获取此表所属的DataSet 
    DefaultView       
获取可能包括筛选视图或游标位置的表的自定义视图。 
    Rows                  
获取属于该表的行的集合。 
    TableName       
获取或设置DataTable 的名称。 

    常用方法 
    AcceptChanges()   
提交自上次调用AcceptChanges() 以来对该表进行的所有更改。 

    Clear()               清除所有数据的DataTable 

    Clone()              克隆DataTable 的结构,包括所有DataTable 架构和约束。 
    EndInit()            
结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。 
    ImportRow(DataRow row)    
DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。 
    Merge(DataTable table)  
将指定的DataTable 与当前的DataTable 合并。 
    NewRow()         
创建与该表具有相同架构的新DataRow   

    DataTable 事件

    ColumnChanged   在 DataRow 中指定的 DataColumn 的值被更改后发生。

    ColumnChanging   在 DataRow 中指定的 DataColumn 的值发生更改时发生。

    Disposed            添加事件处理程序以侦听组间上的Disposed事件

    Initialized            初始化 DataTable 后发生。

    RowChanged     在成功更改 DataRow 之后发生。

    RowChanging  在 DataRow 正在更改时发生。

    RowDeleted     在表中的行已被删除后发生。

    RowDeleting    在表中的行要被删除之前发生。

    TableCleared    清除 DataTable 后发生。

    TableClearing   清除 DataTable 后发生。

三、示例代码

 public 床位查询()
        {
            InitializeComponent();
        }

        private void 床位查询_Load(object sender, EventArgs e)
        {
           
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                "Server=(local);Database=病区管理;Integrated Security=sspi";                             //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
                                                                 //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;
                                                                     //将SQL命令的连接属性指向SQL连接;
            sqlCommand.CommandText = "SELECT * FROM beds;";
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器;
            sqlDataAdapter.SelectCommand = sqlCommand;                                                      //将SQL数据适配器的查询命令属性指向SQL命令;
            DataTable bedsTable = new DataTable();                                                         //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源;
            sqlConnection.Open();                                                                           //打开SQL连接;
            sqlDataAdapter.Fill(bedsTable);                                                                //SQL数据适配器读取数据,并填充班级数据表;
            sqlConnection.Close();                                                                          //关闭SQL连接;
            this.dataGridView1.Columns.Clear();                                                                 //数据网格视图的列集合清空;
            this.dataGridView1.DataSource = bedsTable;                                                       //将数据网格视图的数据源设为学生数据表;
            this.dataGridView1.Columns["be_no"].HeaderText = "病床";                                               //将数据网格视图的指定列的表头文本设为中文;
            this.dataGridView1.Columns["be_depart"].HeaderText = "科室";
            this.dataGridView1.Columns["be_ward"].HeaderText = "病区";
            this.dataGridView1.Columns["be_patient"].HeaderText = "病人";
            this.dataGridView1.Columns["be_doctor"].HeaderText = "医生";
            this.dataGridView1.Columns[this.dataGridView1.Columns.Count - 1].AutoSizeMode =                         //数据网格视图的最后一列的自动调整列宽模式设为填充(至数据网格视图右侧边缘);
                DataGridViewAutoSizeColumnMode.Fill;

        }
 private void cb_科室_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                "Server=(local);Database=病区管理;Integrated Security=sspi";                             //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;
            sqlCommand.CommandText = "SELECT * FROM beds WHERE be_depart='" + cb_科室.Text + "';";
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器;
            sqlDataAdapter.SelectCommand = sqlCommand;                                                      //将SQL数据适配器的查询命令属性指向SQL命令;
            DataTable bedsTable = new DataTable();                                                         //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源;
            sqlConnection.Open();                                                                           //打开SQL连接;
            sqlDataAdapter.Fill(bedsTable);                                                                //SQL数据适配器读取数据,并填充班级数据表;
            sqlConnection.Close();                                                                          //关闭SQL连接;
            this.dataGridView1.Columns.Clear();                                                                 //数据网格视图的列集合清空;
            this.dataGridView1.DataSource = bedsTable;                                                       //将数据网格视图的数据源设为学生数据表;
            this.dataGridView1.Columns["be_no"].HeaderText = "病床";                                               //将数据网格视图的指定列的表头文本设为中文;
            this.dataGridView1.Columns["be_depart"].HeaderText = "科室";
            this.dataGridView1.Columns["be_ward"].HeaderText = "病房";
            this.dataGridView1.Columns["be_patient"].HeaderText = "病人";
            this.dataGridView1.Columns["be_doctor"].HeaderText = "医生";
            this.dataGridView1.Columns[this.dataGridView1.Columns.Count - 1].AutoSizeMode =                         //数据网格视图的最后一列的自动调整列宽模式设为填充(至数据网格视图右侧边缘);
                DataGridViewAutoSizeColumnMode.Fill;
        }

      
       
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                "Server=(local);Database=病区管理;Integrated Security=sspi";                             //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;
            sqlCommand.CommandText = "SELECT * FROM beds WHERE be_depart='" + cb_科室.Text + "';";
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器;
            sqlDataAdapter.SelectCommand = sqlCommand;                                                      //将SQL数据适配器的查询命令属性指向SQL命令;
            DataTable bedsTable = new DataTable();                                                         //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源;
            sqlConnection.Open();                                                                           //打开SQL连接;
            sqlDataAdapter.Fill(bedsTable);                                                                //SQL数据适配器读取数据,并填充班级数据表;
            sqlConnection.Close();                                                                          //关闭SQL连接;
            this.dataGridView1.Columns.Clear();                                                                 //数据网格视图的列集合清空;
            this.dataGridView1.DataSource = bedsTable;                                                       //将数据网格视图的数据源设为学生数据表;
            this.dataGridView1.Columns["be_no"].HeaderText = "病床";                                               //将数据网格视图的指定列的表头文本设为中文;
            this.dataGridView1.Columns["be_depart"].HeaderText = "科室";
            this.dataGridView1.Columns["be_ward"].HeaderText = "病区";
            this.dataGridView1.Columns["be_patient"].HeaderText = "病人";
            this.dataGridView1.Columns["be_doctor"].HeaderText = "医生";
            this.dataGridView1.Columns[this.dataGridView1.Columns.Count - 1].AutoSizeMode =                         //数据网格视图的最后一列的自动调整列宽模式设为填充(至数据网格视图右侧边缘);
                DataGridViewAutoSizeColumnMode.Fill;
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              //声明并实例化SQL连接;
            sqlConnection.ConnectionString =
                "Server=(local);Database=病区管理;Integrated Security=sspi";                             //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
            SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;
            sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;
            sqlCommand.CommandText = "SELECT * FROM beds WHERE be_depart='" + cb_科室.Text + "';";
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器;
            sqlDataAdapter.SelectCommand = sqlCommand;                                                      //将SQL数据适配器的查询命令属性指向SQL命令;
            DataTable bedsTable = new DataTable();                                                         //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源;
            sqlConnection.Open();                                                                           //打开SQL连接;
            sqlDataAdapter.Fill(bedsTable);                                                                //SQL数据适配器读取数据,并填充班级数据表;
            sqlConnection.Close();                                                                          //关闭SQL连接;
            this.dataGridView1.Columns.Clear();                                                                 //数据网格视图的列集合清空;
            this.dataGridView1.DataSource = bedsTable;                                                       //将数据网格视图的数据源设为学生数据表;
            this.dataGridView1.Columns["be_no"].HeaderText = "病床";                                               //将数据网格视图的指定列的表头文本设为中文;
            this.dataGridView1.Columns["be_depart"].HeaderText = "科室";
            this.dataGridView1.Columns["be_ward"].HeaderText = "病区";
            this.dataGridView1.Columns["be_patient"].HeaderText = "病人";
            this.dataGridView1.Columns["be_doctor"].HeaderText = "医生";
            this.dataGridView1.Columns[this.dataGridView1.Columns.Count - 1].AutoSizeMode =                         //数据网格视图的最后一列的自动调整列宽模式设为填充(至数据网格视图右侧边缘);
                DataGridViewAutoSizeColumnMode.Fill;
        }
    }

四、效果截图

 

posted @ 2018-11-21 19:27  Hu-Fan  阅读(333)  评论(0编辑  收藏  举报