第七周学习笔记-ADO.Net中DataTable的应用

 

一、知识点描述

 1、DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他 .NET Framework 对象使用,最常见的情况是作为 DataSet 的成员使用。

 2、创建DataTable

①使用相应的DataTable构造函数创建DataTable对象。

②使用Add方法将其添加到DataTable对象的Tables集合中,将其添加到DataSet中。

③使用DataAdapter对象的Fill方法方法在DataSet中创建。

 3、按名称引用表中的列、关系和约束是区分大小写的。 因此,一个表中可以存在两个或两个以上名称相同(但大小写不同)的列、关系或约束。

 4、在DataSet中创建DataTable之后,可以对数据表中的数据进行增、删、改、查等操作。

 

二.思维导图

 

第七周学习笔记-ADO.Net中DataTable的应用

三.运行代码:

创建对象:

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

1

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

1

2

3

4

5

6

7

8

9

10

11

12

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方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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();             

   }

运行示例代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();                                           //声明并实例化SQL数据适配器;

           sqlDataAdapter.SelectCommand = sqlCommand;                                                      //将SQL数据适配器的查

           this.CourseTable = new DataTable();                                                             //实例化本窗体

           this.CourseTable.TableName = "StudentScore";                                                    //设置课程数据表的表名;

           sqlConnection.Open();                                                                           //

           sqlDataAdapter.Fill(this.CourseTable);                                                          //SQL数据适配器读

           DataColumn rowIdColumn = new DataColumn();                                                      //声明并实例化数据

           rowIdColumn.ColumnName = "RowID";                                                               //设置数据列

           rowIdColumn.DataType = typeof(int);                                                             //设置数据列的

           rowIdColumn.AutoIncrement = true;                                                               //设置数据列

           rowIdColumn.AutoIncrementSeed = 1;                                                              //设置数据列的

           rowIdColumn.AutoIncrementStep = 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的应用