datatabel是C#很常见的一种工具,当我们从数据库取得值的时候,很喜欢直接拿datatabel直接获取,现在记录一下它的具体用法
使用之前记得引入微软的库:using System.Data;
//1:循环
foreach (DataRow row in dt.Rows)
{
var inputDate = Convert.ToDateTime(row["inputDate"]);//通过row["数据库栏位设置"]
}
//2.添加列数
dt.Columns.Add("col1");//col1是列名
//3.添加行数
dt.Rows.Add(newrow);//添加行
//4. 删除列
dt.Columns.Remove("列名称");
dt.Columns.Remove(0);
//若是添加的列是其他datatabel复制过来的,那是无法添加进datatabel的,需要给每一列都单一赋值
DataRow newrow = you_want_add_List.NewRow();//新建一条新的数据
newrow.ItemArray=dt.Rows[i].ItemArray; //逐条复制老数据
you_want_add_List.Rows.Add(newrow);//添加行
//或者
DataRow drname = dt.NewRow();
drname[0] = "aa";
drname[1] = "bb";
ou_want_add_List.Rows.Add(drname );//添加行
//4.复制其他表的结构
DataTable List = new DataTable();//复制表的结构
noattentionList = dt.Clone();
// 5.获取行数和列数
int rowCount = table.Rows.Count;
int columnCount = table.Columns.Count;
// 6.打印列名
foreach (DataColumn column in table.Columns)
{
Console.WriteLine($"列名: {
column.ColumnName}");
}
//7.select用法
dt.Select("id>='3' and name='3--hello'");
dt.Select("name>='3' or id='1'");
dt.Select("name like '%aaa%'");
dt.Select("aa>5","id desc");
//8.对数据进行distinct 处理
DataView dataView = dt.DefaultView;
DataTable distinctTable = dataView.ToTable(true, "aa", "bb", "cc");
datatabel直接转对象
转对象逻辑
1.将datatabel转为json格式
2.将json格式的内容转化为模型data_model的list对象
JsonConvert.DeserializeObject<List<data_model>>(JsonConvert.SerializeObject(dt))