ADO.Net中DataTable的应用

一、知识点描述

DataTable对象用来保存单个表数据,在System.Data命名空间中定义。它包含由DataCloumnCollection表示集合以及由ConstraintCollection表示的约束集合,这两个共同定义表的架构。DataTable还包含DataRowCollection所表示的行的集合,而DataRowCollection则包含表中的数据。

DataTable对象的常用属性、常用方法以其说明,如表1-1、1-2所示。

1-1:

属性名称

说明

Columns

获取属于表的所有列的集合

Rows

获取属于表的所有行的集合

DefaultView

获取可能包括筛选视图或游标的位置的表的自定义视图

HasError

获取一个值,该值指示表所属的DataSet的任何表的任何行中是否有错误

MinimumCapacity

获取或设置表最初的起始大小

TableName

获取或设置DataTable的名称

 

 

1-2:

方法名称

说明

AcceptChanges()

提交自上次调用AcceptChanges以来对该表进行的所有更改

BeginInit()

开始初始化在窗体上使用或由另一个组件使用DataTable。初始化发生在运行时。

BeginLoadData()

在加载数据时关闭通知、索引维护和约束

Clear()

清除所有数据的DataTable

Clone()

克隆DataTable的结构,包括所有DataTable架构和约束

Compute()

计算用来传递筛选条件的当前行上的给定表达式

Copy()

复制该DataTable的结构和数据

CreateDataReader()

返回与此DataTable中的数据相对应的DataTableReader

CreateInstance()

基础结构。创建DataTable的一个新实例

Dispose()

释放由MarshalByValueComponent使用的所有资源

EndInit()

结束在窗体上使用或有另一个组件使用的DataTable的初始化。初始化发生在运行时。

NewRow()

创建与该表具有相同架构的的新DataRow

Reset()

将DataTable重置为其初始状态

Select()

获取DataRow对象的数组

ToString()

获取TableName和DisplayExpression

WriteXml()

使用指定的对象以XML格式写入DattaTable的当前内容


(1)创建DataTable的实例对象。DataTable可以通过其他对象的属性获取,也可以通过代码动态创建。如下为创建DataTable对象的一般步骤:

(2)通过创建DataColumn对象来构建表结构。

(3)将创建好的表结构添加到DataTable对象中。

(4)调用NewRow()创建DataRow对象。

(5)向DataRow对象中添加多条数据记录。

(6)将数据插入到DataTable对象中。

二、思维导图

三、示例代码

由于排版内容的限制,我们就常用的方法进行讲解

1、添加doctortable的列信息:工号、姓名:

this.dgv_message.DataSource = doctortable;                                                       

this.dgv_message.Columns["D_ID"].HeaderText = "工号";                                             

this.dgv_message.Columns["DOCTOR"].HeaderText = "姓名";

2、添加表数据,即每一行的数据:工号、姓名:

sqlCommand.Parameters.AddWithValue("@D_ID",this.txt_id.Text.Trim());sqlCommand.Parameters.AddWithValue("@DOCTOR",this.txt_name.Text。Trim());

3、将该表绑定到DataGridView控件中:

this.dgv_message.DataSource = doctortable;

4、将工号和姓名读取到TextBox框里

this.txt_id.Text = sqlDataReader["D_ID"].ToString();   

this.txt_name.Text = sqlDataReader["DOCTOR"].ToString();

5、DataGridView中同时连接KESHI、DENGJI、DMESSAGE这三张表,并把其他KESHI、DENGJI这两张表的数据赋值到DMESSAGE表中:

SqlCommand sqlCommand = new SqlCommand();                                                       

SqlCommand sqlCommand2 = new SqlCommand();                                                      

SqlCommand sqlCommand3 = new SqlCommand();

sqlCommand.Connection = sqlConnection;                                                          

sqlCommand2.Connection = sqlConnection;                                                         

sqlCommand3.Connection = sqlConnection;

sqlCommand.CommandText = "SELECT * FROM KESHI;";                                             

sqlCommand2.CommandText = "SELECT * FROM DENGJI;";                                          

sqlCommand3.CommandText = "SELECT * FROM DMESSAGE;";

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           

sqlDataAdapter.SelectCommand = sqlCommand;                                                      

DataTable keshitable = new DataTable();                                                         

SqlDataAdapter sqlDataAdapter2 = new SqlDataAdapter();                                          

sqlDataAdapter2.SelectCommand = sqlCommand2;                                                    

DataTable dengjitable = new DataTable();                                                      

SqlDataAdapter sqlDataAdapter3 = new SqlDataAdapter(); sqlDataAdapter3.SelectCommand = sqlCommand3; DataTable doctortable = new DataTable();

6、打开SQL连接KESHI、DENGJI、DMESSAGE读取数据,并关闭:          

sqlConnection.Open();                                                                           

sqlDataAdapter.Fill(keshitable);                                                                

sqlDataAdapter2.Fill(dengjitable);                                                             

sqlDataAdapter3.Fill(doctortable);  

sqlConnection.Close();    

四、效果截图

1、创建列和添加表数据:

2、TextBox框中读取表中工号和姓名:

3、DataGridView中同时连接KESHI、DENGJI、DMESSAGE这三张表,并把其他KESHI、DENGJI这两张表的数据赋值到DMESSAGE表中,打开读取数据:

 

posted @ 2018-10-31 16:48  dearzy35  阅读(333)  评论(0编辑  收藏  举报