日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

datatable数据类型方法

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 datatable数据类型方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文章已收錄于: ????????????????????

[+]

  • Datatable數據類型介紹
  • 簡介
  • 方法介紹
  • 用法一聲明一個datatable類型
  • 用法二合并兩個結構相同的datatable
  • 用法三datatable中數據的計算
  • 用法四兩種遍歷datatable的方法
  • Datatable數據類型介紹

    簡介:

    這里介紹個在開發中經常用到的數據類型,數據類型為datatable。從數據庫中查出的數據存放在datatable,但是很多情況下需要對查出的數據處理,這就需要積累些datatable方法,這樣開發會更快。

    方法介紹

    用法一、聲明一個datatable類型

    通過聲明自己創建一個datatable類型,并填充數據

    [csharp] view plaincopy print?
  • DataTable?dt?=?newDataTable();??
  • ??
  • ?????????dt.Columns.Add("Username");??
  • ??
  • ?????????dt.Columns.Add("Level",?typeof(int));??
  • ??
  • ??
  • ??
  • ?????????dt.Rows.Add("John",?1);??
  • ??
  • ?????????dt.Rows.Add("Cait",?2);??
  • DataTable dt = newDataTable();dt.Columns.Add("Username");dt.Columns.Add("Level", typeof(int));dt.Rows.Add("John", 1);dt.Rows.Add("Cait", 2);

    如果datatable已經存在了創建一個同結構的

    [csharp] view plaincopy print?
  • DataTable?dtNew?=?dt.Clone();??
  • DataTable dtNew = dt.Clone();

    帶著數據:

    ?

    [csharp] view plaincopy print?
  • DataTable?dtNew?=?dt.Copy();??

  • DataTable dtNew = dt.Copy();

    用法二、合并兩個結構相同的datatable

    有的時候是分批來的要一起顯示到通過控件中(比如gridview控件)

    直接合兩個表格

    [csharp] view plaincopy print?
  • DataTable?dt1?=?newDataTable();??
  • ??
  • DataTable?dt2?=?newDataTable();??
  • ??
  • dt1.Merge(dt2);??
  • DataTable dt1 = newDataTable();DataTable dt2 = newDataTable();dt1.Merge(dt2);

    但有的時候需要經過遍歷按照條件把一個表中的某些行添加到另一張表中

    [csharp] view plaincopy print?
  • foreach?(DataRow?dr?in?dt1.Rows)??
  • ??
  • ????????????{??
  • ??
  • ????????????????if?(Convert.ToInt32(dr["Level"]?)==?1)??
  • ??
  • ????????????????{??
  • ??
  • ???????????????????dt2.Rows.Add(dr.ItemArray);??
  • ??
  • ????????????????}??
  • ??
  • ????????????}??
  • foreach (DataRow dr in dt1.Rows){if (Convert.ToInt32(dr["Level"] )== 1){dt2.Rows.Add(dr.ItemArray);}}

    用法三、datatable中數據的計算

    有的時候需要對datatable中的數據進行計算,比如

    聚合計算:

    [csharp] view plaincopy print?
  • DateTime?StartTime?=?Convert.ToDateTime((dt.Compute("min(DateMonth)",?string.Empty)));??
  • ??
  • DateTime?EndTime?=?Convert.ToDateTime((dt.Compute("max(DateMonth)",?string.Empty)));??
  • DateTime StartTime = Convert.ToDateTime((dt.Compute("min(DateMonth)", string.Empty)));DateTime EndTime = Convert.ToDateTime((dt.Compute("max(DateMonth)", string.Empty)));

    這里是對時間類型類進行聚合得到最大時間和最小時間。

    數據行過濾:

    [csharp] view plaincopy print?
  • DataTable?dt?=?newDataTable();??
  • ??
  • ?dt.Columns.AddRange(newDataColumn[]?{?newDataColumn("name",?typeof(string)),??
  • ??
  • ?????????????????????????????????????????newDataColumn("sex",?typeof(string)),??
  • ??
  • ?????????????????????????????????????????newDataColumn("score",?typeof(int))??
  • ??
  • });??
  • ??
  • ???????????dt.Rows.Add(newobject[]?{?"李四",?"男",?20?});??
  • ??
  • ???????????dt.Rows.Add(newobject[]?{?"張三",?"男",?1?});??
  • ??
  • ???????????dt.Rows.Add(newobject[]?{?"張三",?"男",?4?});??
  • ??
  • ???????????dt.Rows.Add(newobject[]?{?"李四",?"男",?100?});??
  • ??
  • ???????????dt.Rows.Add(newobject[]?{?"李四",?"女",?90?});??
  • ??
  • ???????????dt.Rows.Add(newobject[]?{?"王五",?"女",?77?});??
  • DataTable dt = newDataTable();dt.Columns.AddRange(newDataColumn[] { newDataColumn("name", typeof(string)),newDataColumn("sex", typeof(string)),newDataColumn("score", typeof(int))});dt.Rows.Add(newobject[] { "李四", "男", 20 });dt.Rows.Add(newobject[] { "張三", "男", 1 });dt.Rows.Add(newobject[] { "張三", "男", 4 });dt.Rows.Add(newobject[] { "李四", "男", 100 });dt.Rows.Add(newobject[] { "李四", "女", 90 });dt.Rows.Add(newobject[] { "王五", "女", 77 });

    數據過濾的到行,

    [csharp] view plaincopy print?
  • for?(int?i?=?0;?i?<?dtName.Rows.Count;?i++)??
  • ??
  • ????????????{??
  • ??
  • ????????????????DataRow[]?rows?=?dt.Select("name=李四");??
  • ??
  • }??
  • for (int i = 0; i < dtName.Rows.Count; i++){DataRow[] rows = dt.Select("name=李四");}

    數據列過濾

    [csharp] view plaincopy print?
  • DataTable?dtName?=?dt.DefaultView.ToTable(true,?"name",?"sex");??
  • DataTable dtName = dt.DefaultView.ToTable(true, "name", "sex");

    用法四:兩種遍歷datatable的方法

    [csharp] view plaincopy print?
  • foreach?(DataRow?dr?in?dt2.Rows)??
  • ??
  • ????????????{??
  • ??
  • ????????????????Console.Write(dr["Username"]);??
  • ??
  • ????????????????Console.Write(dr["Level"]);??
  • ??
  • ????????????????Console.WriteLine();????????????
  • ??
  • ???
  • ??
  • ????????????}??
  • foreach (DataRow dr in dt2.Rows){Console.Write(dr["Username"]);Console.Write(dr["Level"]);Console.WriteLine(); }
    [csharp] view plaincopy print?
  • for?(int?i?=?0;?i?<?dt1.Rows.Count;?i++)??
  • ??
  • ????????????{??
  • ??
  • ???????????????dt1[i][""]??
  • ??
  • ????????????}??
  • for (int i = 0; i < dt1.Rows.Count; i++){dt1[i][""]} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的datatable数据类型方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。