zoukankan      html  css  js  c++  java
  • (4)DataTable

    引用

    using System.Data;

    创建DataTable

    DataTable dt = new DataTable();
    //指定表明,当把这个table添加到dataset时你就可以用dataset.table["tablename"]取到这个表对象
    //如果不写的话,在dataset中取这个表的时候只能通过索引来取 也就是0,1,2...这种形式来取 DataTable dt =new DataTable("员工信息");

      

    给DataTable增加两列

    dt.Columns.Add("员工年龄");
    dt.Columns.Add("员工姓名");//默认存或取datatable里的数据都是obj类型。存的时候可以加限制,该列只能存什么类型的数据,实际上还是obj
    //或者 dt.Columns.Add("员工年龄", typeof(int));
    dt.Columns.Add("员工姓名", typeof(string));
     

    给DataTable增加行(有列才能加入行数据)

    //创建和表dt相同架构的一行
    DataRow dr1 = dt.NewRow();  
    dr1["员工年龄"] = 28;        
    dr1["员工姓名"] = "沈腾";
    dt.Rows.Add(dr1); //把该行存进dt     
    
    //或者用索引的方式加入数据
    DataRow dr2 = dt.NewRow();  
    dr2[0] = 32;
    dr2[1] = "马丽";
    dt.Rows.Add(dr2);
    //遍历打印dt数据
    for (int x = 0; x < dt.Columns.Count; x++)
    {
        for (int y = 0; y < dt.Rows.Count; y++)
       {
               string strName = dt.Rows[x][y].ToString();
               Console.WriteLine(strName);
       }
    }
    Console.ReadKey();

     或者

    foreach (DataRow row in dt.Rows)
    {
      foreach (DataColumn column in dt.Columns)
      {
        Console.WriteLine(row[column]);
      }
    }
    Console.ReadKey()

    属性及属性的方法:

    //设置表名 
    dt.TableName = "员工信息";

     

    dt.Columns是DataColumnCollection 类

    //获得列名集合
    DataColumnCollection  dc = dt.Columns;
    // 检查集合是否包含具有指定名称的列,返回布尔值
    bool f = dt.Columns.Contains("员工年龄");
    //返回该列索引
    int a = dt.Columns.IndexOf("员工姓名");
    //删除该列
    dt.Columns.Remove("员工姓名");
    //删除索引所在的列
    dt.Columns.RemoveAt(0);
    string str1 = Convert.ToString(dt.Columns["员工年龄"]);
    string str2 = Convert.ToString(dt.Columns[1]);
    Console.WriteLine(str1+str2);

    结果:

    //在末尾增加一列
    dt.Columns.Add("员工住址");

    dt.Rows是DataRowCollection类

    //第一行第二列
    dt.Rows[0][1].ToString();
    //获取此行的所有值,返回object类型
     dt.Rows.Add(dt.Rows[0].ItemArray);
    //插入1行数据 --没测过
    dt.Rows.InsertAt(dr, 1);

    datatable方法:

    //清空表中的数据,但结构还在
    dt.Clear();
    //插入一行数据
    dt.ImportRow(dr2);
    DataTable dt2 = new DataTable("员工信息2");
    //克隆表的结构
    dt2 = dt.Clone();
    //克隆表的结构并且复制表的数据
    dt2 = dt.Copy();
    //把dt2合并到dt1,相同列名数据合并,不同列名单独一列
    dt1.Merge(dt2);
    //获得表名
    string str = dt.ToString();
    //统计列数
    dt.Columns.Count;

    dt.Select() ---给datatable排序

    //返回DataRow对象数组
    DataRow[] rows = dt.Select();
    for (int i = 0; i < rows.Length; i++) {   Console.WriteLine(rows[i]["员工年龄"]); }

     Select(String)

    //支持and
    Select("员工年龄>=18 and 员工年龄<=35"); 
    //支持or //支持like
    Select("员工姓名 like '沈%' or 员工姓名 like '马%'");

    Select(String, String)

    //参数2 排序
    DataRow[] dr = dt.Select("员工年龄>5", "员工年龄 desc");

    xml转DataTable

    //将 XML 架构和数据读入 DataTable 使用指定 Stream
    ReadXml(Stream);
    //将 XML 架构和数据读入 DataTable 从指定的文件
    ReadXml(String);
    //读取 XML 架构到 DataTable 使用指定的流
    ReadXmlSchema(Stream);
    //读取 XML 架构到 DataTable 从指定的文件
    ReadXmlSchema(String);
    //Stream 可以替换成 String类型、TextWriter类型、XmlWriter类型
    WriteXml(Stream)
    //
    WriteXml(Stream, Boolean)
    //
    WriteXml(Stream, XmlWriteMode)
    //
    WriteXml(Stream, XmlWriteMode, Boolean)
    //Stream 可以替换成 String类型、TextWriter类型、XmlWriter类型
    WriteXmlSchema(Stream)
    //
    WriteXmlSchema(Stream, Boolean)
    
  • 相关阅读:
    (转)水经注谷歌地图的级别与对应比例尺及分辨率探究
    oracle 单表导出导入
    案例情景--在一次Oracle 数据库导出时 EXP-00008;ORA-00904:EXP-00000: oracle不同版本导入导出规则
    权衡微服务
    ASP.NET Core HTTP 管道中的那些事儿
    ASP.NET Core 中间件之压缩、缓存
    .NET Core 首例 Office 开源跨平台组件(NPOI Core)
    ASP.NET Core 之 Identity 入门(三)
    Entity Framework Core 1.1 升级通告
    ASP.NET Core 1.1.0 Release Notes
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/8351622.html
Copyright © 2011-2022 走看看