zoukankan      html  css  js  c++  java
  • .net 2.0 datatable 的使用

    datatabel 在.net 2.0中变得更加强大,写这篇文章时我觉得有个问题很难决定,我是把它放在ado.net 中还是发在asp.net中,毕竟我经常在asp.net 中使用datatable对象,但是datatable和dataset 非常的紧密,最终决定放在ado.net中,正好手中有本讲ado.net的书,我会把读书的心得拿出来和大家分享。

    一。创建一个内存表,下面的代码会用到它
    DataTable  auto = new DataTable();

    auto.Columns.Add("ID");

    auto.Columns.Add("Name");

    for(int i=1;i<=10;i++)

    {

         auto.Rows.Add(new object[]{i,"baibaoqing"});

    }

     二。下面介绍DataTable对象经常使用的方法

          1. DataTable 的复制和克隆

           创建DataTable的完全副本(full copu 复制表的结构和数据),通过DataTable的Copy方法实现

           DataTable copy_Table=auto.Copy()

           for(int i=0;i<copy_Table.Rows.Length;i++)

           {

                  Response.Write("<script>alert("+copy_Table.Rows[i][0]+");</script>");

           }

    输出的结果为从0到10 的数字

          有时需要复制DataTable 的表模式(表结果)而不复制数据,可以使用DataTable的Clone方法

           DataTable clone_Table=auto.Clone();

          在克隆了一个DataTable后,可能需要DataTable对象中的某些DataRow对象(行数据)复制到克隆的DataTabel 中,可以使用DataTable 的ImPortRow方法

          clone_Table.ImportRow(auto.Rows[0]);

         2.枚举DataTable

         通过Foreach循环遍历DataTable的行和列

         System.Text.StringBuilder  buffer=new System.Text.StringBuiler();

         foreach(DataColumn dc in auto.Colmns)

        {

                 buffer.Append(String.Format(“{0,15}”,dc.ColumnName));

        }

         buffer.Append("\r\t");

        foreach(DataRow dr in auto.Rows)

        {

                foreach(DataColumn dc in auto.Colmns)

               {

                buffer.Append(String.Format("{0,15}",dr[dc])); 
               }

               buffer.Append("\r\t");

    }

    textbox1.Text=buffer.ToString();

    三. 使用DataView

          1. Sort排序

             DataView view=new DataView(auto);

             view.Sort="Make ASC,Year DESC";

             不过我很少使用DataView 的排序功能,我的作法是在SQL语句中使用Order by

           2. 使用RowFilter 精确查找

               DataView view=new DataView(auto);

               view.RowFilter="Make like 'AA%' and Year>2001";

              同样也可以在SQL语句中设置查询条件,看个人的习惯和实际的需要了。

            3 将DataView 导出到一个新表

             DataTable new_Table=view.ToTable("MyTable",true,"id","name");

             MyTable 新表的名称,true 表示显示不同的值,将相同的行删除(相当于Sql 的distinct),

           id 和name 为新表的列ID.

           4. 枚举DataView

            和枚举DataTabe大同小异

              System.Text.StringBuilder  buffer=new System.Text.StringBuiler();

         foreach(DataColumn dc in auto.Colmns)

        {

                 buffer.Append(String.Format(“{0,15}”,dc.ColumnName));

        }

         buffer.Append("\r\t");

        foreach(DataRowView dv in view)

        {

                foreach(DataColumn dc in auto.Colmns)

               {

                buffer.Append(String.Format("{0,15}",dv[dc])); 
               }

               buffer.Append("\r\t");

    }

    textbox1.Text=buffer.ToString();

    另外在.net 2.0中DataTable对象可以处理XML文件,和DataSet一样,DataTable对象也有ReadXml和WriteXml 的方法,没有具体用过,有机会使用时再做总结。

  • 相关阅读:
    linux常用命令
    mysql 开发基础系列20 事务控制和锁定语句(上)
    sql server 性能调优之 资源等待 CXPACKET
    mysql 开发基础系列19 触发器
    mysql 开发基础系列18 存储过程和函数(下)
    mysql 开发基础系列17 存储过程和函数(上)
    sql server 性能调优之 资源等待PAGEIOLATCH
    mysql 开发基础系列16 视图
    mysql 开发基础系列15 索引的设计和使用
    sql server 性能调优之 当前用户请求分析 (1)
  • 原文地址:https://www.cnblogs.com/ilahsa/p/1190750.html
Copyright © 2011-2022 走看看