首页 php教程 php手册 C#DataTable详解

C#DataTable详解

Jul 06, 2016 pm 01:30 PM
sys using 引用 添加 详解

添加引用 using System.Data; 创建表 // 创建一个空表 DataTable dt = new DataTable(); // 创建一个名为"Table_New"的空表 DataTable dt = new DataTable( " Table_New " ); 创建列 // 1.创建空列 DataColumn dc = new DataColumn();dt.Columns.Add(dc); //

添加引用

<span style="color: #0000ff;">using</span> System.Data;
登录后复制

创建表

<span style="color: #008000;">//</span><span style="color: #008000;">创建一个空表</span>
DataTable dt = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DataTable();
</span><span style="color: #008000;">//</span><span style="color: #008000;">创建一个名为"Table_New"的空表</span>
DataTable dt = <span style="color: #0000ff;">new</span> DataTable(<span style="color: #800000;">"</span><span style="color: #800000;">Table_New</span><span style="color: #800000;">"</span>);
登录后复制

创建列

<span style="color: #008000;">//</span><span style="color: #008000;">1.创建空列</span>
DataColumn dc = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DataColumn();
dt.Columns.Add(dc);
</span><span style="color: #008000;">//</span><span style="color: #008000;">2.创建带列名和类型名的列(两种方式任选其一)</span>
dt.Columns.Add(<span style="color: #800000;">"</span><span style="color: #800000;">column0</span><span style="color: #800000;">"</span>, System.Type.GetType(<span style="color: #800000;">"</span><span style="color: #800000;">System.String</span><span style="color: #800000;">"</span><span style="color: #000000;">));
dt.Columns.Add(</span><span style="color: #800000;">"</span><span style="color: #800000;">column0</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">typeof</span><span style="color: #000000;">(String));
</span><span style="color: #008000;">//</span><span style="color: #008000;">3.通过列架构添加列</span>
DataColumn dc = <span style="color: #0000ff;">new</span> DataColumn(<span style="color: #800000;">"</span><span style="color: #800000;">column1</span><span style="color: #800000;">"</span>,System.Type.GetType(<span style="color: #800000;">"</span><span style="color: #800000;">System.DateTime</span><span style="color: #800000;">"</span><span style="color: #000000;">));
DataColumn dc </span>= <span style="color: #0000ff;">new</span> DataColumn(<span style="color: #800000;">"</span><span style="color: #800000;">column1</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">typeof</span><span style="color: #000000;">(DateTime));
dt.Columns.Add(dc);</span>
登录后复制

创建行

<span style="color: #008000;">//</span><span style="color: #008000;">1.创建空行</span>
DataRow dr =<span style="color: #000000;"> dt.NewRow();
dt.Rows.Add(dr);
</span><span style="color: #008000;">//</span><span style="color: #008000;">2.创建空行</span>
<span style="color: #000000;">dt.Rows.Add();
</span><span style="color: #008000;">//</span><span style="color: #008000;">3.通过行框架创建并赋值</span>
dt.Rows.Add(<span style="color: #800000;">"</span><span style="color: #800000;">张三</span><span style="color: #800000;">"</span>,DateTime.Now);<span style="color: #008000;">//</span><span style="color: #008000;">Add里面参数的数据顺序要和dt中的列的顺序对应 <br>//4.通过复制dt2表的某一行来创建<br></span>dt.Rows.Add(dt2.Rows[i].ItemArray);
登录后复制

赋值和取值

<span style="color: #008000;">//</span><span style="color: #008000;">新建行的赋值</span>
DataRow dr =<span style="color: #000000;"> dt.NewRow();
dr[</span><span style="color: #800080;">0</span>] = <span style="color: #800000;">"</span><span style="color: #800000;">张三</span><span style="color: #800000;">"</span>;<span style="color: #008000;">//</span><span style="color: #008000;">通过索引赋值</span>
dr[<span style="color: #800000;">"</span><span style="color: #800000;">column1</span><span style="color: #800000;">"</span>] = DateTime.Now; <span style="color: #008000;">//</span><span style="color: #008000;">通过名称赋值
</span><span style="color: #008000;">//</span><span style="color: #008000;">对表已有行进行赋值</span>
dt.Rows[<span style="color: #800080;">0</span>][<span style="color: #800080;">0</span>] = <span style="color: #800000;">"</span><span style="color: #800000;">张三</span><span style="color: #800000;">"</span>; <span style="color: #008000;">//</span><span style="color: #008000;">通过索引赋值</span>
dt.Rows[<span style="color: #800080;">0</span>][<span style="color: #800000;">"</span><span style="color: #800000;">column1</span><span style="color: #800000;">"</span>] = DateTime.Now;<span style="color: #008000;">//</span><span style="color: #008000;">通过名称赋值
</span><span style="color: #008000;">//</span><span style="color: #008000;">取值</span>
<span style="color: #0000ff;">string</span> name=dt.Rows[<span style="color: #800080;">0</span>][<span style="color: #800080;">0</span><span style="color: #000000;">].ToString();
</span><span style="color: #0000ff;">string</span> time=dt.Rows[<span style="color: #800080;">0</span>][<span style="color: #800000;">"</span><span style="color: #800000;">column1</span><span style="color: #800000;">"</span>].ToString();
登录后复制

筛选行

<span style="color: #008000;">//</span><span style="color: #008000;">选择column1列值为空的行的集合</span>
DataRow[] drs = dt.Select(<span style="color: #800000;">"</span><span style="color: #800000;">column1 is null</span><span style="color: #800000;">"</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">选择column0列值为"李四"的行的集合</span>
DataRow[] drs = dt.Select(<span style="color: #800000;">"</span><span style="color: #800000;">column0 = '李四'</span><span style="color: #800000;">"</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">筛选column0列值中有"张"的行的集合(模糊查询)</span>
DataRow[] drs = dt.Select(<span style="color: #800000;">"</span><span style="color: #800000;">column0 like '张%'</span><span style="color: #800000;">"</span>);<span style="color: #008000;">//</span><span style="color: #008000;">如果的多条件筛选,可以加 and 或 or
</span><span style="color: #008000;">//</span><span style="color: #008000;">筛选column0列值中有"张"的行的集合并按column1降序排序</span>
DataRow[] drs = dt.Select(<span style="color: #800000;">"</span><span style="color: #800000;">column0 like '张%'</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">column1 DESC</span><span style="color: #800000;">"</span>);
登录后复制

删除行

<span style="color: #008000;">//</span><span style="color: #008000;">使用DataTable.Rows.Remove(DataRow)方法</span>
dt.Rows.Remove(dt.Rows[<span style="color: #800080;">0</span><span style="color: #000000;">]);
</span><span style="color: #008000;">//</span><span style="color: #008000;">使用DataTable.Rows.RemoveAt(index)方法</span>
dt.Rows.RemoveAt(<span style="color: #800080;">0</span><span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">使用DataRow.Delete()方法</span>
dt.Row[<span style="color: #800080;">0</span><span style="color: #000000;">].Delete();
dt.AcceptChanges();

</span><span style="color: #008000;">//-----</span><span style="color: #008000;">区别和注意点-----
</span><span style="color: #008000;">//</span><span style="color: #008000;">Remove()和RemoveAt()方法是直接删除
</span><span style="color: #008000;">//</span><span style="color: #008000;">Delete()方法只是将该行标记为deleted,但是还存在,还可DataTable.RejectChanges()回滚,使该行取消删除。
</span><span style="color: #008000;">//</span><span style="color: #008000;">用Rows.Count来获取行数时,还是删除之前的行数,需要使用DataTable.AcceptChanges()方法来提交修改。
</span><span style="color: #008000;">//</span><span style="color: #008000;">如果要删除DataTable中的多行,应该采用倒序循环DataTable.Rows,而且不能用foreach进行循环删除,因为正序删除时索引会发生变化,程式发生异常,很难预料后果。</span>
<span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = dt.Rows.Count - <span style="color: #800080;">1</span>; i >= <span style="color: #800080;">0</span>; i--<span style="color: #000000;">)
{
  dt.Rows.RemoveAt(i);
}</span>
登录后复制

复制表

<span style="color: #008000;">//</span><span style="color: #008000;">复制表,同时复制了表结构和表中的数据</span>
DataTable dtNew = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DataTable();
dtNew </span>=<span style="color: #000000;"> dt.Copy();
</span><span style="color: #008000;">//</span><span style="color: #008000;">复制表</span>
DataTable dtNew = dt.Copy();  <span style="color: #008000;">//</span><span style="color: #008000;">复制dt表数据结构</span>
dtNew.Clear()  <span style="color: #008000;">//</span><span style="color: #008000;">清空数据</span>
<span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i )
{
    <span style="color: #0000ff;">if</span><span style="color: #000000;"> (条件语句)
    {
         dtNew.Rows.Add(dt.Rows[i].ItemArray);  </span><span style="color: #008000;">//</span><span style="color: #008000;">添加数据行</span>
<span style="color: #000000;">    }
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">克隆表,只是复制了表结构,不包括数据</span>
DataTable dtNew = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DataTable();
dtNew </span>=<span style="color: #000000;"> dt.Clone();
</span><span style="color: #008000;">//</span><span style="color: #008000;">如果只需要某个表中的某一行</span>
DataTable dtNew = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DataTable();
dtNew </span>=<span style="color: #000000;"> dt.Copy();
dtNew.Rows.Clear();</span><span style="color: #008000;">//</span><span style="color: #008000;">清空表数据</span>
dtNew.ImportRow(dt.Rows[<span style="color: #800080;">0</span>]);<span style="color: #008000;">//</span><span style="color: #008000;">这是加入的是第一行</span>
登录后复制

表排序

DataTable dt = <span style="color: #0000ff;">new</span> DataTable();<span style="color: #008000;">//</span><span style="color: #008000;">创建表</span>
dt.Columns.Add(<span style="color: #800000;">"</span><span style="color: #800000;">ID</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">typeof</span>(Int32));<span style="color: #008000;">//</span><span style="color: #008000;">添加列</span>
dt.Columns.Add(<span style="color: #800000;">"</span><span style="color: #800000;">Name</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">typeof</span><span style="color: #000000;">(String));
dt.Columns.Add(</span><span style="color: #800000;">"</span><span style="color: #800000;">Age</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">typeof</span><span style="color: #000000;">(Int32));
dt.Rows.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #0000ff;">object</span>[] { <span style="color: #800080;">1</span>, <span style="color: #800000;">"</span><span style="color: #800000;">张三</span><span style="color: #800000;">"</span> ,<span style="color: #800080;">20</span>});<span style="color: #008000;">//</span><span style="color: #008000;">添加行</span>
dt.Rows.Add(<span style="color: #0000ff;">new</span> <span style="color: #0000ff;">object</span>[] { <span style="color: #800080;">2</span>, <span style="color: #800000;">"</span><span style="color: #800000;">李四</span><span style="color: #800000;">"</span> ,<span style="color: #800080;">25</span><span style="color: #000000;">});
dt.Rows.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #0000ff;">object</span>[] { <span style="color: #800080;">3</span>, <span style="color: #800000;">"</span><span style="color: #800000;">王五</span><span style="color: #800000;">"</span> ,<span style="color: #800080;">30</span><span style="color: #000000;">});
DataView dv </span>= dt.DefaultView;<span style="color: #008000;">//</span><span style="color: #008000;">获取表视图</span>
dv.Sort = <span style="color: #800000;">"</span><span style="color: #800000;">ID DESC</span><span style="color: #800000;">"</span>;<span style="color: #008000;">//</span><span style="color: #008000;">按照ID倒序排序</span>
dv.ToTable();<span style="color: #008000;">//</span><span style="color: #008000;">转为表</span>
登录后复制

 


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

米家怎么添加电视 米家怎么添加电视 Mar 25, 2024 pm 05:00 PM

很多用户们在现代生活中越来越青睐小米智能家居互联的电子生态,那么连接米家APP后,你就可以轻松用手机来控制连接设备,但是很多用户们还不知如何将自己的家居添加米家app中,那么这篇教程攻略就将为大家带来具体连接方法步骤攻略,希望能帮助到各位有需要的小伙伴们。1、下载米家APP后,创建或者登录小米账户。2、添加方法:当全新的设备通电后,将手机靠近设备并打开小米电视,正常情况下会弹出连接提示,选择“确定”即进入设备连接流程。若无提示弹出,也可以手动添加设备,方法是:进入智能家庭APP后,点击左下方第1

Win11管理员权限获取详解 Win11管理员权限获取详解 Mar 08, 2024 pm 03:06 PM

Windows操作系统是全球最流行的操作系统之一,其新版本Win11备受瞩目。在Win11系统中,管理员权限的获取是一个重要的操作,管理员权限可以让用户对系统进行更多的操作和设置。本文将详细介绍在Win11系统中如何获取管理员权限,以及如何有效地管理权限。在Win11系统中,管理员权限分为本地管理员和域管理员两种。本地管理员是指具有对本地计算机的完全管理权限

Oracle SQL中的除法运算详解 Oracle SQL中的除法运算详解 Mar 10, 2024 am 09:51 AM

OracleSQL中的除法运算详解在OracleSQL中,除法运算是一种常见且重要的数学运算操作,用于计算两个数相除的结果。除法在数据库查询中经常用到,因此了解OracleSQL中的除法运算及其用法是数据库开发人员必备的技能之一。本文将详细讨论OracleSQL中除法运算的相关知识,并提供具体的代码示例供读者参考。一、OracleSQL中的除法运算

如何修复Cldflt.sys蓝屏错误? 如何修复Cldflt.sys蓝屏错误? Feb 20, 2024 am 10:30 AM

如果您遇到SYSTEM_SERVICE_EXCEPTION蓝屏错误,并发现Cldflt.sys文件出现故障,本文将为您提供解决此问题的方法。什么是Cldflt.sys?云文件小过滤驱动(Cldflt.sys)是Windows系统中一项关键的服务,用于管理Windows云存储功能。它的作用是协助用户在本地设备和云端之间同步和管理数据文件,以确保文件存储的及时更新。是什么导致Cldflt.sysBSOD错误?OneDrive的问题:由于Cldflt.sys文件或与云存储及其同步相关的错误,Micro

Tampermonkey怎么添加新脚本-Tampermonkey怎么删除脚本 Tampermonkey怎么添加新脚本-Tampermonkey怎么删除脚本 Mar 18, 2024 pm 12:10 PM

Tampermonkey油猴Chrome扩展是一款用户脚本管理插件,通过脚本提高了用户的效率和浏览体验,那么Tampermonkey怎么添加新脚本?怎么删除脚本呢?下面就让小编给大家解答下吧!Tampermonkey怎么添加新脚本:1、这里拿GreasyFork来举例子,打开GreasyFork网页,输入要按照的脚本,小编这里选择的一键离线下载2、选择一个脚本,进入脚本页面后可以看到安装此脚本的按钮3、点击安装此脚本,来到安装界面。这里点击安装就可以了4、我们可以在以安装的脚本中看到安装好的一键

在MetaMask钱包中如何连接到Polygon网络?MetaMask钱包连接到Polygon网络的教程指南 在MetaMask钱包中如何连接到Polygon网络?MetaMask钱包连接到Polygon网络的教程指南 Jan 19, 2024 pm 04:36 PM

如何添加PolygonMainnet网络要将MATIC(Polygon)与Metamask链接使用,您需要添加一个名为“PolygonMainnet”的专用网络。使用错误的网络地址进行转入会导致出现问题,所以在转出$MATIC之前,请务必使用“PolygonMainnet”网络。Metamask钱包默认连接到以太坊主网,但是我们可以很简单地添加“PolygonMainnet”并使用$MATIC。只需简单的复制和粘贴几个步骤,就能完成。首先,在Metamask钱包中,点击右上角的网络选项,选择“C

Outlook卡在添加帐户[修复] Outlook卡在添加帐户[修复] Mar 23, 2024 pm 12:21 PM

当您在Outlook中添加帐户时遇到问题时,可以尝试以下解决方案来解决。通常这可能是由网络连接故障、用户配置文件损坏或其他暂时性问题引起的。通过本文提供的方法,您可以轻松地解决这些问题,确保您的Outlook能够正常运行。Outlook卡在添加帐户如果您的Outlook在添加帐户时卡住,请使用下面提到的这些修复程序:断开并重新连接互联网临时禁用防病毒软件创建新的Outlook配置文件尝试在安全模式下添加帐户禁用IPv6运行Microsoft支持和恢复助手修复办公室应用程序Outlook添加帐户需

Java数组添加元素的常用方法 Java数组添加元素的常用方法 Feb 21, 2024 am 11:21 AM

Java数组添加元素的常用方法,需要具体代码示例在Java中,数组是一种常见的数据结构,可以存储多个相同类型的元素。在实际开发中,我们经常需要向数组中添加新的元素。本文将介绍Java中数组添加元素的常用方法,并提供具体的代码示例。使用循环创建新数组一个简单的方法是创建一个新的数组,将旧数组的元素复制到新数组中,并添加新的元素。代码示例如下://原始数组i

See all articles