C# Datatable的几种用法小结
什么是C# Datatable?
C# Datatable是一个用于在内存中存储数据的表结构对象。它可以用于存储和操作数据源中的多行数据,并且能够提供强大的筛选、排序、分组等功能。C# Datatable是ADO.NET中的一部分,可以用于在Windows Forms、WPF应用程序及Web应用程序中显示和操作数据。
Datatable的构造函数
1.构造函数
Datatable提供了多个构造函数:
public DataTable(); // 创建一个名称为空,没有列结构的DataTable对象。
public DataTable(string tableName); // 创建一个指定名称,没有列结构的DataTable对象。
public DataTable(string tableName, string tableNamespace); // 创建具有指定名称和命名空间的DataTable对象。
构造函数默认创建一个名称为空并且没有列结构的DataTable对象。
2.添加列结构
数据表必须定义列的结构,即列的名称和类型。下面是添加列的示例:
DataTable dt = new DataTable("DemoTable");
DataColumn nameCol = new DataColumn("Name", typeof(string));
DataColumn ageCol = new DataColumn("Age", typeof(int));
dt.Columns.Add(nameCol);
dt.Columns.Add(ageCol);
3.添加数据行
添加数据行可以调用DataTable的NewRow()方法,返回一个新的DataRow。使用DataRow的SetField()方法可以为其中的列赋值。
DataRow newRow = dt.NewRow();
newRow.SetField<string>("Name", "Lucy");
newRow.SetField<int>("Age", 20);
dt.Rows.Add(newRow);
这个示例向DataTable中添加了一行,名称为"Lucy",年龄为20的数据。
Datatable的查询和筛选
1.Select方法
DataTable提供了Select方法用于对表中数据进行筛选。
DataRow[] matchingRows = dt.Select("Age >= 18");
这个示例将返回DataTable中年龄大于或等于18岁的所有DataRow。
2.DefaultView
DataTable的DefaultView属性可以用来对数据进行排序与筛选:
DataView dv = dt.DefaultView;
dv.RowFilter = "Age >= 18";
dv.Sort = "Age DESC";
这个示例将DataTable中所有年龄大于或等于18岁的数据进行排序,按照年龄降序排列。
Datatable的分组
DataTable的GroupBy方法可以按照指定的列对数据进行分组。
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Group", typeof(string));
dt.Rows.Add("Lucy", "Group1");
dt.Rows.Add("Mike", "Group2");
dt.Rows.Add("Tom", "Group2");
dt.Rows.Add("Jerry", "Group1");
var groups = from row in dt.AsEnumerable()
group row by row.Field<string>("Group") into g
select new { Group = g.Key, Count = g.Count() };
这个示例将DataTable按照"Group"列分组,返回每个分组中包含的行数和分组的名称。
使用DataTable和DataGridView控件进行数据绑定
DataGridView是Windows Forms中的一个数据展示控件,可以与DataTable数据源直接进行绑定。
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = dt;
}
这个示例在窗体加载时,将DataTable绑定到DataGridView控件上。
参考资料:C# Datatable 官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Datatable的几种用法小结 - Python技术站