Datatable數據類型介紹
簡介:
這裏介紹個在開發中經常用到的數據類型,數據類型爲datatable。從數據庫中查出的數據存放在datatable,但是很多情況下需要對查出的數據處理,這就需要積累些datatable方法,這樣開發會更快。
方法介紹
用法一、聲明一個datatable類型
通過聲明自己創建一個datatable類型,並填充數據
DataTable dt = newDataTable();
dt.Columns.Add("Username");
dt.Columns.Add("Level", typeof(int));
dt.Rows.Add("John", 1);
dt.Rows.Add("Cait", 2);
如果datatable已經存在了創建一個同結構的
DataTable dtNew = dt.Clone();
帶着數據:
DataTable dtNew = dt.Copy();
用法二、合併兩個結構相同的datatable
有的時候是分批來的要一起顯示到通過控件中(比如gridview控件)
直接合兩個表格
DataTable dt1 = newDataTable();
DataTable dt2 = newDataTable();
dt1.Merge(dt2);
但有的時候需要經過遍歷按照條件把一個表中的某些行添加到另一張表中
foreach (DataRow dr in dt1.Rows)
{
if (Convert.ToInt32(dr["Level"] )== 1)
{
dt2.Rows.Add(dr.ItemArray);
}
}
用法三、datatable中數據的計算
有的時候需要對datatable中的數據進行計算,比如
聚合計算:
DateTime StartTime = Convert.ToDateTime((dt.Compute("min(DateMonth)", string.Empty)));
DateTime EndTime = Convert.ToDateTime((dt.Compute("max(DateMonth)", string.Empty)));
這裏是對時間類型類進行聚合得到最大時間和最小時間。
數據行過濾:
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 });
數據過濾的到行,
for (int i = 0; i < dtName.Rows.Count; i++)
{
DataRow[] rows = dt.Select("name=李四");
}
數據列過濾
DataTable dtName = dt.DefaultView.ToTable(true, "name", "sex");
用法四:兩種遍歷datatable的方法
foreach (DataRow dr in dt2.Rows)
{
Console.Write(dr["Username"]);
Console.Write(dr["Level"]);
Console.WriteLine();
}
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1[i][""]
}