SqlDataAdapter 和 DataTable 来执行查询并返回结果。以下是一个示例代码:,,“csharp,using System.Data;,using System.Data.SqlClient;,,string connectionString = "your_connection_string";,string query = "SELECT * FROM your_table";,,using (SqlConnection connection = new SqlConnection(connectionString)),{, SqlDataAdapter adapter = new SqlDataAdapter(query, connection);, DataTable dataTable = new DataTable();, adapter.Fill(dataTable);,},“SQL 查询与 DataTable 数据操作
在数据处理和分析的领域中,SQL(Structured Query Language)查询是获取和操作关系数据库中数据的核心工具,而 DataTable 则是在应用程序中用于存储、处理和展示数据的一种内存中的数据结构,常被用于 .NET 框架下的 Windows Forms 和 ASP.NET Web 应用程序开发。
一、SQL 查询基础
| 关键词 | 描述 |
| SELECT | 指定要查询的列,可使用通配符“*”表示所有列 |
| FROM | 指定数据来源的表或视图 |
| WHERE | 过滤条件,用于筛选满足特定条件的记录 |
| GROUP BY | 对数据进行分组,通常与聚合函数(如 COUNT, SUM, AVG 等)一起使用 |
| ORDER BY | 对查询结果进行排序,可按升序(ASC)或降序(DESC)排列 |
| HAVING | 用于筛选分组后的结果,类似于 WHERE,但作用于分组后的数据 |
| JOIN | 连接多个表,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)等 |
示例:简单查询语句
SELECT * FROM Customers WHERE Country = 'Germany' AND Age > 30;
上述查询语句从 Customers 表中选取所有来自德国且年龄大于 30 的客户信息。
二、DataTable
DataTable 是一个内存中的数据集,它可以包含多行数据,每行数据由多个列组成,类似于数据库中的表结构,它提供了丰富的方法来操作数据,如添加、删除、修改行或列,以及查询数据等。
DataTable 的主要属性和方法
Columns:表示 DataTable 中的所有列,可以通过索引或名称访问特定的列。
Rows:表示 DataTable 中的所有行,同样可以通过索引或条件来获取特定的行。

NewRow:获取一个新的 DataRow 对象,可用于向 DataTable 中添加新行。
ImportRow:将其他 DataRow 对象导入到当前 DataTable 中。
Select:根据指定的条件过滤行,返回一个 DataRow 数组。
示例:创建和操作 DataTable
以下是一个使用 C# 代码创建和操作 DataTable 的简单示例:
using System;
using System.Data;
class Program
{
static void Main()
{
// 创建一个 DataTable 实例
DataTable table = new DataTable("Customers");
// 添加列
table.Columns.Add("CustomerID", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Age", typeof(int));
// 添加行
DataRow row1 = table.NewRow();
row1["CustomerID"] = 1;
row1["Name"] = "John Doe";
row1["Age"] = 28;
table.Rows.Add(row1);
DataRow row2 = table.NewRow();
row2["CustomerID"] = 2;
row2["Name"] = "Jane Smith";
row2["Age"] = 35;
table.Rows.Add(row2);
// 查询年龄大于 30 的客户
string filter = "Age > 30";
DataRow[] filteredRows = table.Select(filter);
foreach (DataRow row in filteredRows)
{
Console.WriteLine("CustomerID: {0}, Name: {1}, Age: {2}", row["CustomerID"], row["Name"], row["Age"]);
}
}
}
运行上述代码,将会输出:
CustomerID: 2, Name: Jane Smith, Age: 35
三、SQL 查询结果填充 DataTable

在实际应用程序中,常常需要将 SQL 查询的结果填充到 DataTable 中,以便在应用程序中进一步处理和使用这些数据,这可以通过使用SqlDataAdapter 类来实现,它将 SQL 查询的结果集加载到 DataTable 中。
示例:使用 SqlDataAdapter 填充 DataTable
以下示例展示了如何使用SqlDataAdapter 将 SQL 查询结果填充到 DataTable 中:
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "your_connection_string_here";
string query = "SELECT CustomerID, Name, Age FROM Customers WHERE Age > 30";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataTable table = new DataTable();
adapter.Fill(table);
foreach (DataRow row in table.Rows)
{
Console.WriteLine("CustomerID: {0}, Name: {1}, Age: {2}", row["CustomerID"], row["Name"], row["Age"]);
}
}
}
}
在上面的代码中,首先创建了一个SqlConnection 对象并指定了连接字符串,然后创建了一个SqlDataAdapter 对象,并将 SQL 查询语句和连接对象传递给它,接着创建了一个空的 DataTable 对象,并使用adapter.Fill(table) 方法将查询结果填充到 DataTable 中,通过遍历 DataTable 的每一行来输出客户信息。
四、相关问题与解答
问题 1:如何在 DataTable 中添加新列?

答:可以使用 DataTable 的Columns.Add 方法来添加新列。table.Columns.Add("NewColumnName", typeof(NewColumnType));,其中NewColumnName 是新列的名称,NewColumnType 是新列的数据类型。
问题 2:如何根据多列条件查询 DataTable 中的行?
答:可以使用 DataTable 的Select 方法,并传递一个包含多列条件的字符串作为参数。string filter = "Column1 = 'Value1' AND Column2 > Value2"; DataRow[] filteredRows = table.Select(filter);,这样就可以根据 Column1 等于 ‘Value1’ 且 Column2 大于 Value2 的条件来查询 DataTable 中的行。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/142280.html