C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法!
码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。
码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。
码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。
最终实现下图的效果:
C#三分钟教你理解DataTable、Datarow、DataColumn的关系以及用法!
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、几者的关系
几者的关系如下所示:
DataSet里可以放多个DataTable,,其次就是DataTable里是由两部分组成的,一个是DataColumn,一个是DataRow。可以将其想像成为一个Excel文件,Dataset就是每页excel,dataTable就是每页内存储的数据,datarow和dataColumn就当成是数据的行和列。所以我们操作其数据可以根据表头也可以根据行和列的索引进行相关操作。
二、声明以及初始化
1、DataTable的创建
代码如下:
//1、首先创建一个DataTable对象 表名为Mytable
DataTable dt = new DataTable("Mytable");
2、DataColumn的创建
代码如下:
//2、创建四列并添加到DataTable的列中 列名分别是 姓名 性别 年龄 兴趣
dt.Columns.Add(new DataColumn("姓名"));
dt.Columns.Add(new DataColumn("性别"));
dt.Columns.Add(new DataColumn("年龄"));
dt.Columns.Add(new DataColumn("兴趣"));
F12进入到DataColumn的构造函数可以看到小括号内的字符串就是列名称
3、DataRow的创建
代码如下:
//3、下面我们需要往这个表里添加一些数据
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
//分别给各列名如下的行赋值
dr["姓名"] = "张三"+i;
dr["性别"] = "男";
dr["年龄"] = 20+i;
dr["兴趣"] = "打篮球" + i;
//将此条记录加入到dt中去
dt.Rows.Add(dr);
}
注意这里要用到DataTable.NewRow()方法来创建一个新的实例。
4、DataSet的创建
代码如下:
//4、DataSet 声明以及初始化:
//将这个DataTable加入到DataSet中去
DataSet ds = new DataSet();
ds.Tables.Add(dt);
5、数据查询
①遍历DataSet中所有DataTable
foreach (var item in ds.Tables )//遍历DataSet中的所有Datatable
{
DataTable dt0 = item as DataTable;
}
②遍历DataTable中所有DataColumn
//遍历Datatable中所有列并打印每一行的表头
foreach (var itemColumns in dt0.Columns)
{
//这里要用到as表达式或者强制类型转换,否则的话没法找到其ColumnName属性。
Console.Write((itemColumns as DataColumn).ColumnName+"||");
...
}
③遍历DataTable中所有DataRow数据
//第一种方法 采用扩展方法 .Field的方式
Console.WriteLine("-----方法1:采用扩展方法的方式----------");
foreach (var itemRows in dt0.Rows)
{
Console.Write((itemRows as DataRow).Field<string>("姓名")+" ");
Console.Write((itemRows as DataRow).Field<string>("性别") + " ");
Console.Write((itemRows as DataRow).Field<string>("年龄") + " ");
Console.WriteLine((itemRows as DataRow).Field<string>("兴趣") +" ");
...
}
Console.WriteLine("-----方法2:采用查询索引的方式----------");
for (int i = 0; i < dt0.Rows.Count; i++)
{
Console.WriteLine("{0}{1}{2}{3}", dt0.Rows[i][0], dt0.Rows[i][1], dt0.Rows[i][2], dt0.Rows[i][3]);
}
这里用到了DataRow的扩展方法.Field,可以F12进去看他的定义如下:
其中方法一我采用这种格式: Field<返回值类型>(“列名称”),方法二类似数据库查表的方式一样
6、完整代码
代码量不多就不上传git了拷贝过去就能用了,完整代码如下:
//1、首先创建一个DataTable对象 表名为Mytable
DataTable dt = new DataTable("Mytable");
//2、创建四列并添加到DataTable的列中 列名分别是 姓名 性别 年龄 兴趣
dt.Columns.Add(new DataColumn("姓名"));
dt.Columns.Add(new DataColumn("性别"));
dt.Columns.Add(new DataColumn("年龄"));
dt.Columns.Add(new DataColumn("兴趣"));
//3、下面我们需要往这个表里添加一些数据
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
//分别给各列名如下的赋值
dr["姓名"] = "张三"+i;
dr["性别"] = "男";
dr["年龄"] = 20+i;
dr["兴趣"] = "打篮球" + i;
//将此条记录加入到dt中去
dt.Rows.Add(dr);
}
//将这个DataTable加入到DataSet中去
DataSet ds = new DataSet();
ds.Tables.Add(dt);
foreach (var item in ds.Tables )//遍历DataSet中的所有Datatable
{
DataTable dt0 = item as DataTable;
foreach (var itemColumns in dt0.Columns)//遍历Datatable中所有列并打印每一行的表头
{
Console.Write((itemColumns as DataColumn).ColumnName+"||");
}
Console.WriteLine();
//第一种方法 采用扩展方法 .Field的方式
Console.WriteLine("--------------采用扩展方法的方式----------------");
foreach (var itemRows in dt0.Rows)
{
Console.Write((itemRows as DataRow).Field<string>("姓名")+" ");
Console.Write((itemRows as DataRow).Field<string>("性别") + " ");
Console.Write((itemRows as DataRow).Field<string>("年龄") + " ");
Console.WriteLine((itemRows as DataRow).Field<string>("兴趣") + " ");
}
Console.WriteLine("--------------采用查询索引的方式----------------");
for (int i = 0; i < dt0.Rows.Count; i++)
{
Console.WriteLine("{0} {1} {2} {3}", dt0.Rows[i][0], dt0.Rows[i][1], dt0.Rows[i ][2], dt0.Rows[i][3]);
}
}
Console.ReadKey();
}
总结
以上就是今天要讲的内容,简单介绍了DataSet、DataTable、DataColumn、DataRow的使用。
码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。 码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。 码字不易,点赞关注加收藏,谢谢各位看官老爷了!!!!。