C# DataTable常见用法汇总

C# DataTable常见用法汇总

本攻略将详细讲解C# DataTable的常见用法,包括创建、增删改查、排序、筛选、数据类型转换等。

创建DataTable

创建DataTable之前需要先声明DataTable对象和数据列,并在表对象中添加数据列,代码如下:

//声明表对象
DataTable dt = new DataTable();
//添加数据列
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("Age", typeof(int));
dt.Columns.Add("Gender");

增删改查

增加行

使用NewRow()方法创建新行,使用Add()方法将行添加到表中,代码如下:

DataRow dr = dt.NewRow();
dr["ID"] = 1;
dr["Name"] = "Tom";
dr["Age"] = 20;
dr["Gender"] = "Male";
dt.Rows.Add(dr);

删除行

使用Remove()方法删除指定行,代码如下:

dt.Rows.Remove(dt.Rows[0]);

修改行

直接对行的数据进行修改即可,代码如下:

dt.Rows[0]["Age"] = 21;

查询行

使用Select()方法查询符合条件的行,代码如下:

DataRow[] drs = dt.Select("Age>18");
foreach (DataRow dr in drs)
{
    Console.WriteLine(dr["Name"]);
}

排序

使用DefaultView对数据进行排序,并将结果赋值给DataTable,代码如下:

dt.DefaultView.Sort = "Age desc";
dt = dt.DefaultView.ToTable();

筛选

使用Select()方法筛选符合条件的行,并将结果复制到新的DataTable中,代码如下:

DataTable dt2 = dt.Clone();
DataRow[] drs = dt.Select("Age>18");
foreach (DataRow dr in drs)
{
    dt2.ImportRow(dr);
}

数据类型转换

使用Convert类进行数据类型转换,示例如下:

int age = Convert.ToInt32(dt.Rows[0]["Age"]);

示例说明

示例1

以下示例展示如何使用DataTable和DataGrid实现数据表格的显示和编辑:

DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name");
dt.Columns.Add("Age", typeof(int));
dt.Columns.Add("Gender");

//添加测试数据
DataRow dr = dt.NewRow();
dr["ID"] = 1;
dr["Name"] = "Tom";
dr["Age"] = 20;
dr["Gender"] = "Male";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["ID"] = 2;
dr["Name"] = "Lucy";
dr["Age"] = 21;
dr["Gender"] = "Female";
dt.Rows.Add(dr);

DataGrid dg = new DataGrid();
dg.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { Source = dt });
dg.IsReadOnly = false;

使用以上代码,创建了一个包含数据的DataTable,将DataTable与DataGrid进行绑定,实现了数据表格的显示和编辑。

示例2

以下示例展示如何使用ADO.NET和DataTable实现数据的查询和展示:

using System.Data.SqlClient;

string connStr = "Data Source=(local);Initial Catalog=StudentDB;User ID=sa;Password=123456";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();

string sql = "select * from Student";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);

conn.Close();

//在页面或窗口中显示表格
DataGrid dg = new DataGrid();
dg.SetBinding(ItemsControl.ItemsSourceProperty, new Binding { Source = dt });

使用以上代码,创建了一个连接StudentDB数据库,查询Student表中的所有记录,并将结果填充到DataTable中,最后将DataTable与DataGrid进行绑定,实现了数据的查询和展示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# DataTable常见用法汇总 - Python技术站

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

相关文章

  • C# 删除数组内的某个值、一组值方法详解

    下面是关于“C# 删除数组内的某个值、一组值方法详解”的完整攻略。 1.题目理解 首先,让我们理解题目的含义。该题目要求我们使用C#编写一个可以删除一个数组内的某个值或一组值的方法。 2.方法介绍 我们可以使用以下两种方法来删除数组内的某个值或一组值。 2.1.使用LINQ方法 使用LINQ方法进行数组的删除,主要是使用Where()和ToArray()函数…

    C# 2023年6月1日
    00
  • C# TextReader.Close – 关闭文本读取器

    TextReader.Close 方法是C#中System.IO.TextReader类的一个实例方法,用于关闭流并释放与之关联的所有系统资源。 使用方法: 首先通过实例化一个TextReader对象,打开一个文本流 对打开的文本流进行读取操作 使用TextReader.Close()方法关闭文件流和内存流 完整代码示例1: using System; us…

    C# 2023年4月19日
    00
  • C# IsReadOnly:获取一个值,该值指示集合是否为只读

    C#中的IsReadOnly属性用于指示集合或数组是否为只读。如果集合或数组为只读,则不允许用户添加、修改或删除其元素。IsReadOnly是一个bool类型的属性,其值默认为false。当IsReadOnly为true时,集合或数组将变为只读状态,任何修改都会引发NotSupportedException异常。 以下是IsReadOnly属性用法的示例: …

    C# 2023年4月19日
    00
  • 一文掌握C# JSON(2023最新整理)

    一文掌握C# JSON(2023最新整理) 什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集,可以被多种编程语言读取和写入。JSON格式最初由 Douglas Crockford 提出,现已成为一种公认的数据交换格式。 C#中使用JSON的方式 C#中有多种库可…

    C# 2023年5月31日
    00
  • C#运算符之与,或,异或及移位运算小结

    让我们来详细讲解一下C#中的逻辑运算符、位运算符及移位运算符。 逻辑运算符 与运算符(&&) 与运算符用于连接两个逻辑表达式并在两个表达式均为true时返回true。与运算符可以被用于任何基本的数据类型,例如bool、int等。 int a = 3; int b = 5; if (a < b && b % 2 == 1)…

    C# 2023年6月8日
    00
  • WinForm中DefWndProc、WndProc与IMessageFilter的区别

    WinForm是Windows Forms的缩写,是基于Windows的用户界面框架,提供了一个可视化的设计工具。在WinForm中,程序的窗口消息都是通过消息循环和窗口过程来处理的。其中DefWndProc、WndProc和IMessageFilter都是处理窗口消息的重要概念。接下来我将针对这三个概念进行详细讲解: DefWndProc DefWndPr…

    C# 2023年6月7日
    00
  • ASP.NET MVC中两个配置文件的作用详解

    当我们使用ASP.NET MVC框架来开发一个网站时,我们需要先了解两个配置文件的作用,这些配置文件可以帮助我们更好地配置和管理应用程序。它们分别是Web.Config和RouteConfig.cs。 Web.Config Web.config文件是一个XML文件,它包含了ASP.NET应用程序的配置信息,包括应用程序的全局设置、数据库连接字符串、应用程序级…

    C# 2023年6月3日
    00
  • C# Lambda表达式及Lambda表达式树的创建过程

    让我们来详细讲解一下C# Lambda表达式及Lambda表达式树的创建过程。 什么是Lambda表达式 Lambda表达式是C# 3.0引入的一种新的语言特性,它是一种可创建委托或表达式树类型的匿名函数。可以将Lambda表达式看作一个简短的函数,它没有名称,但它可以被赋值给委托类型或表达式树类型。 Lambda表达式的基本语法格式如下: (paramet…

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