首頁 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++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中的除法運算

在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

Tampermonkey怎麼加入新腳本-Tampermonkey怎麼刪除腳本 Tampermonkey怎麼加入新腳本-Tampermonkey怎麼刪除腳本 Mar 18, 2024 pm 12:10 PM

Tampermonkey油猴Chrome擴充功能是一款使用者腳本管理插件,透過腳本提高了使用者的效率和瀏覽體驗,那麼Tampermonkey要怎麼加入新腳本呢?怎麼刪除腳本呢?下面就讓小編給大家解答吧!Tampermonkey怎麼加入新腳本:1、這裡拿GreasyFork來舉例子,打開GreasyFork網頁,輸入要按照的腳本,小編這裡選擇的一鍵離線下載2、選擇一個腳本,進入腳本頁面後可以看到安裝此腳本的按鈕3、點選安裝此腳本,來到安裝介面。這裡點擊安裝就可以了4、我們可以在以安裝的腳本中看到安裝好的一鍵

如何修復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

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