分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

ADO.Net中DataTable的应用(知识点描述、思维导图、示例代码、效果截图)

发布时间:2023-09-06 02:19责任编辑:林大明关键词:暂无标签

在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中。下面是 Ado.Net 关系:Connection_____Command____DataAdapter____Dataset  _____Datareader

ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源。

一、思维导图:

二、知识点描述:

Data Table的构造函数:

编号

构造函数

描述

1

DataTable()

它用于初始化没有参数的DataTable类的新实例。

2

DataTable(String)

它用于使用指定的表名初始化DataTable类的新实例。

3

DataTable(SerializationInfo, StreamingContext)

它用于使用SerializationInfo和StreamingContext初始化DataTable类的新实例。

4

DataTable(String, String)

它用于使用指定的表名和名称空间初始化DataTable类的新实例。

属性:

编号

属性

描述

1

Columns

它用于获取属于此表的列的集合。

2

Constraints

它被用来获取由这个表维护的约束的集合。

3

DataSet

它用于获取此表所属的DataSet。

4

DefaultView

它用于获取可能包含过滤视图的表的自定义视图。

5

HasErrors

它用于获取指示DataSet表中的任何行中是否存在错误的值。

6

MinimumCapacity

它用于获取或设置此表的初始起始大小。

7

PrimaryKey

它用于获取或设置一个用作数据表主键的列数组。

8

Rows

它用于获取属于此表的行的集合。

9

TableName

它用于获取或设置DataTable的名称。

创建对象:

       创建方法有两种:1.使用DataTable类的构造函数创建DataTable对象 

DataTable table = new DataTable( )

                                    2.调用DataSet的Tables对象的Add方法创建DataTable对象

DataSet dataset = new dataSet( );DataTable table = dataset.Tables.Add(“MyTableName”);

       在DataTable对象中添加列:调用DataTable对象的Column中的Add方法添加列

       在DataTable对象中创建行:由于DataTable对象的每一行都是一个DataRow对象,所以创建行时可以利用DataTable对象的NewRow方法创建一个DataRow对象,并设置新行中各列的数据,然后利用Add方法将DataRow对象添加到表中

        将SQL Server数据库中的表填充到DataTable对象中:有两种方式:

              1.使用fill方法填充DataTable

private void useDataTableByFill() ???{ ???????SqlConnection myConnection = newSqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString); ???????DataTable myDataTable = new DataTable(); ???????SqlDataAdapter myDp = newSqlDataAdapter("select * from authors", myConnection); ???????myDp.Fill(myDataTable); ???????GridView1.DataSource =myDataTable.DefaultView; ???????GridView1.DataBind(); ???????????????myConnection.Dispose(); ???????myDp.Dispose(); ??????????}

   2.使用使用DataReader方法:

 private void useDataTableByDataReader() ???{ ???????SqlConnection myConnection = newSqlConnection(ConfigurationManager.ConnectionStrings["sqlConnectionString"].ConnectionString); ???????DataTable myDataTable = new DataTable(); ???????SqlCommand myCommand = newSqlCommand("select * from authors", myConnection); ???????myConnection.Open(); ???????SqlDataReader dr =myCommand.ExecuteReader(CommandBehavior.CloseConnection); ???????myDataTable.Load(dr); ???????GridView1.DataSource =myDataTable.DefaultView; ???????GridView1.DataBind(); ???????dr.Close(); ???????dr.Dispose(); ???????myCommand.Dispose(); ??????????????????}

三、示例代码:

 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); ??????????????????????????????????????????//声明并实例化SQL数据适配器; ???????????sqlDataAdapter.SelectCommand = sqlCommand; ?????????????????????????????????????????????????????//将SQL数据适配器的查询命令属性指向SQL命令; ???????????this.CourseTable = new DataTable(); ????????????????????????????????????????????????????????????//实例化本窗体的课程数据表,用于保存所有课程,以用作数据网格视图数据源; ???????????this.CourseTable.TableName = "StudentScore"; ???????????????????????????????????????????????????//设置课程数据表的表名;由于该查询访问多张表,数据适配器无法自动指定表名,故需手动指定表名; ???????????sqlConnection.Open(); ??????????????????????????????????????????????????????????????????????????//打开SQL连接; ???????????sqlDataAdapter.Fill(this.CourseTable); ?????????????????????????????????????????????????????????//SQL数据适配器读取数据,并只将架构填充至课程数据表; ???????????DataColumn rowIdColumn = new DataColumn(); ?????????????????????????????????????????????????????//声明并实例化数据列,用于保存行编号; ???????????rowIdColumn.ColumnName = "RowID"; ??????????????????????????????????????????????????????????????//设置数据列的名称; ???????????rowIdColumn.DataType = typeof(int); ????????????????????????????????????????????????????????????//设置数据列的类型;类型需借助typeof获取; ???????????rowIdColumn.AutoIncrement = true; ??????????????????????????????????????????????????????????????//设置数据列为自增列; ???????????rowIdColumn.AutoIncrementSeed = 1; ?????????????????????????????????????????????????????????????//设置数据列的自增种子为1; ???????????rowIdColumn.AutoIncrementStep = 1; ?????????????????????????????????????????????????????????????//设置数据列的自增步长为1; ???????????this.CourseTable.Columns.Add(rowIdColumn); ?????????????????????????????????????????????????????//数据列加入本窗体的课程数据表的列集合; ???????????sqlCommand.CommandText = ???????????????"SELECT S.No,S.Name AS SName,C.Name AS CName,SS.TotalScore" ???????????????+ " FROM tb_Student AS S " ???????????????+ " JOIN tb_StudentScore AS SS ON S.No=SS.StudentNo" ???????????????+ " JOIN tb_Course AS C ON SS.CourseNo=C.No;"; ?????????????????????????????????????????????//指定SQL命令的命令文本;该命令查询所有学生成绩; ???????????sqlDataAdapter.Fill(this.CourseTable); ?????????????????????????????????????????????????????????//SQL数据适配器读取数据,并填充课程数据表; ???????????sqlConnection.Close();

  

ADO.Net中DataTable的应用(知识点描述、思维导图、示例代码、效果截图)

原文地址:https://www.cnblogs.com/nicestlala/p/9858411.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved