C# DataTable的详细用法分享

C# DataTable的详细用法分享

什么是DataTable

DataTable是ADO.NET数据组件中的一种对象,用于表示一张数据表,可以通过创建Columns属性和Rows属性来存储数据。DataTable可以被当成是一个内存中的关系型数据表。

如何创建DataTable

可以通过创建DataTable实例,并添加列和行来创建DataTable对象。

DataTable dt = new DataTable("myTable");
// 添加列
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Age", typeof(int)));
// 添加行
DataRow dr = dt.NewRow();
dr["ID"] = 1;
dr["Name"] = "Tom";
dr["Age"] = 20;
dt.Rows.Add(dr);

如何访问DataTable中的数据

可以通过Columns属性获取DataTable中的列信息,通过Rows属性获取DataTable中的行信息,通过指定列名和行索引获取单元格中的值。

// 获取指定列的信息
foreach(DataColumn col in dt.Columns)
{
    Console.WriteLine("ColumnName:{0} DataType:{1}", col.ColumnName, col.DataType);
}
// 获取指定行的信息
foreach(DataRow row in dt.Rows)
{
    Console.WriteLine("ID:{0} Name:{1} Age:{2}", row["ID"], row["Name"], row["Age"]);
}
// 获取指定单元格的值
Console.WriteLine("Name:{0}", dt.Rows[0]["Name"]);

如何对DataTable进行操作

可以通过以下的方法对DataTable进行操作:

可以通过创建新的行并添加到Rows中来实现增加数据。

// 创建新行并添加到DataTable中
DataRow newRow = dt.NewRow();
newRow["ID"] = 2;
newRow["Name"] = "Jerry";
newRow["Age"] = 22;
dt.Rows.Add(newRow);

可以通过移除Rows中的行来实现删除数据。

// 根据行索引移除行
dt.Rows.RemoveAt(0);
// 根据条件删除行
foreach(DataRow row in dt.Rows)
{
    if((int)row["Age"] < 18)
    {
        dt.Rows.Remove(row);
    }
}

可以通过直接对Rows中的值进行修改来实现修改数据。

// 直接修改
dt.Rows[0].SetField("Name", "Scott");
// 循环修改
foreach(DataRow row in dt.Rows)
{
    row.SetField("Age", (int)row["Age"] + 1);
}

可以通过Select方法实现查找符合条件的行,并返回一个新的DataTable。

// 找到年龄大于20的行
DataTable newDt = dt.Select("Age > 20").CopyToDataTable();

示例1

以下是一个简单的示例,演示如何创建、访问和操作一个DataTable对象。

// 创建DataTable并添加列
DataTable dt = new DataTable("myTable");
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Age", typeof(int)));

// 创建新行并添加到DataTable中
DataRow newRow = dt.NewRow();
newRow["ID"] = 1;
newRow["Name"] = "Tom";
newRow["Age"] = 20;
dt.Rows.Add(newRow);

// 打印出DataTable中的信息
foreach(DataColumn col in dt.Columns)
{
    Console.WriteLine("ColumnName:{0} DataType:{1}", col.ColumnName, col.DataType);
}
foreach(DataRow row in dt.Rows)
{
    Console.WriteLine("ID:{0} Name:{1} Age:{2}", row["ID"], row["Name"], row["Age"]);
}

// 添加一条新的记录
DataRow newRow2 = dt.NewRow();
newRow2["ID"] = 2;
newRow2["Name"] = "Jerry";
newRow2["Age"] = 22;
dt.Rows.Add(newRow2);

// 修改一条记录
dt.Rows[0].SetField("Name", "Scott");

// 删除一条记录
dt.Rows.RemoveAt(1);

// 找到年龄大于20的记录
DataTable newDt = dt.Select("Age > 20").CopyToDataTable();
foreach(DataRow row in newDt.Rows)
{
    Console.WriteLine("ID:{0} Name:{1} Age:{2}", row["ID"], row["Name"], row["Age"]);
}

示例2

以下是一个示例,演示如何通过读取CSV文件内容,创建DataTable。

// 读取CSV文件内容
string[] lines = File.ReadAllLines(@"C:\temp\data.csv");

// 创建DataTable并添加列
DataTable dt = new DataTable("myTable");
string[] columnNames = lines[0].Split(',');
foreach(string columnName in columnNames)
{
    dt.Columns.Add(new DataColumn(columnName, typeof(string)));
}

// 添加数据
for(int i = 1; i < lines.Length; i++)
{
    string[] values = lines[i].Split(',');
    DataRow newRow = dt.NewRow();
    for(int j = 0; j < columnNames.Length; j++)
    {
        newRow[columnNames[j]] = values[j];
    }
    dt.Rows.Add(newRow);
}

// 打印出DataTable中的信息
foreach(DataColumn col in dt.Columns)
{
    Console.WriteLine("ColumnName:{0} DataType:{1}", col.ColumnName, col.DataType);
}
foreach(DataRow row in dt.Rows)
{
    Console.WriteLine("ID:{0} Name:{1} Age:{2}", row["ID"], row["Name"], row["Age"]);
}

以上是C# DataTable的详细用法分享的完整攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# DataTable的详细用法分享 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C# Remove(Object):从集合中移除指定对象的第一个匹配项

    C# Remove(Object)方法攻略 C# Remove(Object)方法用于从集合中移除所有与指定对象相等的元素。它接受一个Object类型的参数,并返回一个整数,表示成功删除的元素数目。 方法声明 public int Remove(object obj); 使用示例 示例一:移除一组数字中的特定数字 下面的示例代码演示了如何使用Remove(o…

    C# 2023年4月19日
    00
  • linq中的连接操作符

    当我们在使用Linq时,有时候我们需要将两个数据源进行连接(Join)操作,LINQ提供了以下几种连接操作符: Inner Join(join in) Left Outer Join (join…into…from…DefaultIfEmpty) Right Outer Join (join…into…from…DefaultIfEm…

    C# 2023年6月1日
    00
  • 让Visual Studio用上chatgpt

        最近小编思维发散“Visual Studio可以集成chatgpt吗?”,这样不就可以让chatgpt帮你写代码了吗?寻觅了一圈,还真有这个东西,那就是一个Visual Studio的扩展插件:Visual chatGPT Studio,虽然不是官方的,部分功能也可以值得一用。本文将介绍Visual chatGPT Studio及它的使用案例。 一、…

    C# 2023年5月8日
    00
  • C#中静态的深入理解

    C#中静态的深入理解 引言 静态是C#中重要的概念之一,常常用来修饰变量、方法和类。正确的理解与使用静态,可以使程序更加高效,减少开发中的错误。 静态变量 静态变量是指在类级别定义一个变量,即该变量是应用于整个类,而非特定实例。静态变量的生命周期与类的生命周期相同。定义静态变量使用static关键字。 示例1:定义一个静态变量并初始化为0 public cl…

    C# 2023年5月31日
    00
  • ASP.NET Core如何知道一个请求执行了哪些中间件?

    第一步,添加Nuget包引用 需要添加两个Nuget包分别是:Microsoft.AspNetCore.MiddlewareAnalysis和Microsoft.Extensions.DiagnosticAdapter,前者是分析记录中间件核心代码实现后者是用来接收日志输出的,由于是用的DiagnosticSource方式记录日志,所以需要使用Diagnos…

    C# 2023年4月18日
    00
  • WinForm入门与基本控件使用详解

    WinForm入门与基本控件使用详解 1. WinForm简介 WinForm是Windows应用程序的主要用户界面框架,它是在.NET框架之上创建的。使用WinForm可以轻松创建各种Windows应用程序。 1.1 WinForm的优势 可以使用Visual Studio创建WinForm应用程序,这使得对开发者来说非常方便。 WinForm提供了许多内…

    C# 2023年5月31日
    00
  • VS2015 C#生成dll文件的方法(32/64)

    生成dll文件是C#程序开发中的常见需求之一,下面是在VS2015中生成32/64位dll文件的完整攻略。 生成32位dll文件的攻略 打开Visual Studio 2015软件,点击File -> New -> Project,创建一个新的Class Library项目。 在“Solution Explorer”窗口中右键单击项目名称,选择“…

    C# 2023年5月14日
    00
  • Unity3D实现摄像机镜头移动并限制角度

    下面是针对“Unity3D实现摄像机镜头移动并限制角度”的攻略,分为以下几个步骤: 步骤一:创建摄像机游戏对象 首先,我们需要在Unity3D场景中创建一个摄像机游戏对象。可以在层次视图中点击“Create”按钮,然后选择“Camera”创建一个摄像机。 步骤二:添加脚本 接着,我们需要给刚才创建的摄像机对象添加脚本。在Project视图中创建一个新的脚本文…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部