C#读取SQLserver一个数据库里的两个表中数据整合到一个数组,并可以对数组进行排序
时间: 2024-05-16 20:14:07 浏览: 147
首先,您需要在C#中使用SQL Server连接字符串连接到您的数据库。然后,您可以使用SQL查询从两个表中获取数据,将结果存储在一个DataTable中。接下来,您可以将DataTable中的数据复制到一个数组中,并使用Array.Sort方法对其进行排序。以下是一个简单的示例代码:
```csharp
using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main(string[] args)
{
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword";
string query = "SELECT * FROM Table1 UNION ALL SELECT * FROM Table2";
SqlDataAdapter adapter = new SqlDataAdapter(query, connectionString);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
// Copy data to array
DataRow[] rows = new DataRow[dataTable.Rows.Count];
dataTable.Rows.CopyTo(rows, 0);
// Sort array
Array.Sort(rows, (a, b) => ((int)a["ID"]).CompareTo((int)b["ID"]));
// Print sorted array
foreach (DataRow row in rows)
{
Console.WriteLine(row["ID"] + " " + row["Name"]);
}
}
}
```
在上面的示例中,我们使用UNION ALL运算符将两个表中的数据合并到一个查询中。然后,我们使用SqlDataAdapter将查询结果填充到一个DataTable中。接下来,我们使用DataRow数组将DataTable中的数据复制到一个数组中,并使用Array.Sort方法对其进行排序。最后,我们遍历排序后的数组并打印每一行的ID和Name。请注意,我们使用了一个lambda表达式作为比较器来比较行的ID值。您可以根据需要修改比较器来排序不同的列或以不同的顺序排序。
阅读全文