一、增加列
在datatable中添加列有两种方式,一种是在创建datatable时指定列的名称和数据类型,二是在已有的datatable中增加列。在创建datatable时需要指定的列名和数据类型,如下所示:
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int));
如果是在已有的datatable中增加列,可以使用Add方法:
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Columns.Add("gender", typeof(string));
上述代码中,我们在已有的datatable中增加一个名为"gender"的列。
二、往datatable数据中间增加一列
我们可以通过循环每行记录,插入新的值。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Rows.Add(1, "Alice", 25); dt.Rows.Add(2, "Bob", 29); dt.Rows.Add(3, "Charlie", 32); DataColumn myNewCol = new DataColumn("gender", typeof(string)); dt.Columns.Add(myNewCol); int dataIndex = 0; foreach (DataRow row in dt.Rows) { row["gender"] = "未知"; dataIndex++; }
三、获取某一列的数据
使用DataTable的Select方法可以直接获取数据表中的数据。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Rows.Add(1, "Alice", 25); dt.Rows.Add(2, "Bob", 29); dt.Rows.Add(3, "Charlie", 32); DataColumn ageColumn = dt.Columns[2]; foreach (DataRow row in dt.Select()) { Console.WriteLine(row[ageColumn]); }
四、复制一行到另一行
我们可以使用DataRow的Clone方法来复制行,并将其添加到新的datatable中。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Rows.Add(1, "Alice", 25); dt.Rows.Add(2, "Bob", 29); dt.Rows.Add(3, "Charlie", 32); DataRow rowToCopy = dt.Rows[0]; DataRow newRow = dt.NewRow(); newRow.ItemArray = rowToCopy.ItemArray; dt.Rows.Add(newRow);
五、隐藏列名
要隐藏datatable中的某一列的名称,可以使用ColumnMapping属性设置。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Columns[2].ColumnMapping = MappingType.Hidden;
六、数据类型
在datatable中定义列时,我们需要指定列的数据类型。常见的数据类型包括整型、字符串、日期等。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("birthday", typeof(DateTime));
七、Select方法用法
使用Select方法可以从datatable中筛选出符合条件的数据。Select方法传递一个字符串参数,该参数表示需要查询的表达式。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Rows.Add(1, "Alice", 25); dt.Rows.Add(2, "Bob", 29); dt.Rows.Add(3, "Charlie", 32); DataRow[] result = dt.Select("age > 30"); foreach (DataRow row in result) { Console.WriteLine(row["name"]); }
八、Datatable使用场景
除了在后台数据库操作过程中使用datatable,它还可以作为集合中的等效替代品。对于小型应用程序,它是一种简单而快速的存储和处理数据的方法。在需要将数据存储在内存中的情况下,它非常有用。
九、排序
Datatable提供了对列的排序方法。下面的例子演示了如何对年龄列升序排序。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Rows.Add(1, "Alice", 25); dt.Rows.Add(2, "Bob", 29); dt.Rows.Add(3, "Charlie", 32); dt.DefaultView.Sort = "age ASC"; foreach (DataRow row in dt.DefaultView.ToTable().Rows) { Console.WriteLine(row["name"]); }
以上就是datatable的详细介绍,它是一个强大的工具,可以帮助我们高效的管理和处理数据。