C#DataTable详解
添加引用 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>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ramai pengguna semakin memihak kepada ekosistem elektronik sambung rumah pintar Xiaomi dalam kehidupan moden Selepas menyambung ke APP Mijia, anda boleh mengawal peranti yang disambungkan dengan mudah dengan telefon bimbit anda Namun, ramai pengguna masih tidak tahu cara menambah Mijia rumah mereka, maka panduan tutorial ini akan membawakan kepada anda kaedah dan langkah sambungan khusus, dengan harapan dapat membantu semua orang yang memerlukan. 1. Selepas memuat turun APP Mijia, buat atau log masuk ke akaun Xiaomi. 2. Kaedah menambah: Selepas peranti baharu dihidupkan, dekatkan telefon dengan peranti dan hidupkan TV Xiaomi Dalam keadaan biasa, gesaan sambungan akan muncul. Jika tiada gesaan muncul, anda juga boleh menambah peranti secara manual Kaedahnya ialah: selepas memasuki APP rumah pintar, klik butang pertama di sebelah kiri bawah

Sistem pengendalian Windows ialah salah satu sistem pengendalian yang paling popular di dunia, dan versi baharunya Win11 telah menarik perhatian ramai. Dalam sistem Win11, mendapatkan hak pentadbir adalah operasi penting Hak pentadbir membolehkan pengguna melakukan lebih banyak operasi dan tetapan pada sistem. Artikel ini akan memperkenalkan secara terperinci cara mendapatkan kebenaran pentadbir dalam sistem Win11 dan cara mengurus kebenaran dengan berkesan. Dalam sistem Win11, hak pentadbir dibahagikan kepada dua jenis: pentadbir tempatan dan pentadbir domain. Pentadbir tempatan mempunyai hak pentadbiran penuh ke atas komputer tempatan

Penjelasan terperinci tentang operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi ialah operasi matematik yang biasa dan penting, digunakan untuk mengira hasil pembahagian dua nombor. Bahagian sering digunakan dalam pertanyaan pangkalan data, jadi memahami operasi bahagian dan penggunaannya dalam OracleSQL adalah salah satu kemahiran penting untuk pembangun pangkalan data. Artikel ini akan membincangkan pengetahuan berkaitan operasi bahagian dalam OracleSQL secara terperinci dan menyediakan contoh kod khusus untuk rujukan pembaca. 1. Operasi bahagian dalam OracleSQL

Sambungan Chrome Tampermonkey ialah pemalam pengurusan skrip pengguna yang meningkatkan kecekapan pengguna dan pengalaman menyemak imbas melalui skrip Jadi bagaimanakah Tampermonkey menambah skrip baharu? Bagaimana untuk memadam skrip? Biarkan editor memberi anda jawapan di bawah! Cara menambah skrip baru pada Tampermonkey: 1. Ambil GreasyFork sebagai contoh Buka halaman web GreasyFork dan masukkan skrip yang anda mahu ikuti. 2. Pilih skrip , selepas memasuki halaman skrip, anda boleh melihat butang untuk memasang skrip ini 3. Klik untuk memasang skrip ini untuk datang ke antara muka pemasangan. Hanya klik di sini untuk memasang 4. Kita boleh melihat satu klik yang dipasang dalam skrip pemasangan.

Jika anda menghadapi ralat skrin biru SYSTEM_SERVICE_EXCEPTION dan mendapati fail Cldflt.sys rosak, artikel ini akan memberi anda cara untuk menyelesaikan isu ini. Apakah itu Cldflt.sys? Pemacu penapis kecil fail awan (Cldflt.sys) ialah perkhidmatan utama dalam sistem Windows dan digunakan untuk mengurus fungsi storan awan Windows. Peranannya adalah untuk membantu pengguna dalam menyegerakkan dan mengurus fail data antara peranti tempatan dan awan untuk memastikan kemas kini storan fail tepat pada masanya. Apakah yang menyebabkan ralat Cldflt.sysBSOD? Isu dengan OneDrive: Mikro disebabkan oleh fail Cldflt.sys atau ralat yang berkaitan dengan storan awan dan penyegerakannya

Cara menambah rangkaian PolygonMainnet Untuk menggunakan MATIC (Polygon) dengan Metamask, anda perlu menambah rangkaian peribadi yang dipanggil "PolygonMainnet". Pemindahan masuk dengan alamat rangkaian yang salah boleh menyebabkan masalah, jadi pastikan anda menggunakan rangkaian "PolygonMainnet" sebelum memindahkan keluar daripada $MATIC. Dompet Metamask disambungkan ke mainnet Ethereum secara lalai, tetapi kami hanya boleh menambah "PolygonMainnet" dan menggunakan $MATIC. Hanya beberapa langkah salin dan tampal mudah dan anda sudah selesai. Pertama, dalam dompet Metamask, klik pada pilihan rangkaian di sudut kanan atas dan pilih "C
![Outlook tersekat semasa menambah akaun [Tetap]](https://img.php.cn/upload/article/000/887/227/171116770937641.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Apabila anda menghadapi masalah menambah akaun dalam Outlook, anda boleh mencuba penyelesaian berikut untuk menyelesaikannya. Biasanya ini boleh disebabkan oleh sambungan rangkaian yang rosak, profil pengguna yang rosak atau isu sementara yang lain. Melalui kaedah yang disediakan dalam artikel ini, anda boleh menyelesaikan masalah ini dengan mudah dan memastikan Outlook anda boleh berjalan seperti biasa. Outlook tersekat semasa menambah akaun Jika Outlook anda tersekat semasa menambah akaun, kemudian gunakan pembetulan ini yang dinyatakan di bawah: Putuskan sambungan dan sambung semula internet Lumpuhkan sementara perisian antivirus Buat profil Outlook baharu Cuba tambah akaun dalam mod selamat Lumpuhkan IPv6 Jalankan Sokongan Microsoft dan Pembaikan Pembantu Pemulihan Office Application Outlook Tambah Akaun Diperlukan

Operator modulo (%) dalam PHP digunakan untuk mendapatkan baki pembahagian dua nombor. Dalam artikel ini, kami akan membincangkan peranan dan penggunaan pengendali modulo secara terperinci, dan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Peranan pengendali modulo Dalam matematik, apabila kita membahagi integer dengan integer lain, kita mendapat hasil bagi dan baki. Sebagai contoh, apabila kita membahagi 10 dengan 3, hasil bahagi ialah 3 dan selebihnya ialah 1. Operator modulo digunakan untuk mendapatkan baki ini. 2. Penggunaan operator modulo Dalam PHP, gunakan simbol % untuk mewakili modulus
