📜  sql server 自动查询输出到 json 文件 - C# (1)

📅  最后修改于: 2023-12-03 15:05:17.894000             🧑  作者: Mango

SQL Server 自动查询输出到 JSON 文件 - C#

如果您是一名 C# 程序员,也同时使用 SQL Server 数据库,那么您应该知道如何将查询结果输出到 JSON 文件中,这样可以方便地将数据传输到其他系统或者平台上,而不必再进行任何转换或格式化。

在本文中,我们将讨论如何使用 C# 来自动执行 SQL 查询,并将结果输出到 JSON 文件。我们将讲解如何进行以下操作:

  • 连接到 SQL Server 数据库
  • 执行 SELECT 查询
  • 将结果转换为 JSON 字符串
  • 将 JSON 字符串写入文件
连接到 SQL Server 数据库

首先,我们需要连接到 SQL Server 数据库。为此,我们可以使用 SqlConnection 类来打开连接。以下是一个简单的示例:

using System.Data.SqlClient;

string connectionString = "<connection-string>";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // 执行查询操作
}

请注意,您需要将 <connection-string> 替换为您的实际连接字符串。

执行 SELECT 查询

接下来,我们需要执行 SELECT 查询并获取结果。为此,我们可以使用 SqlCommand 类来创建命令,然后调用 ExecuteReader() 方法来执行查询。

以下是一个例子:

using (SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection))
using (SqlDataReader reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        // 处理读取到的每一行数据
    }
}

在上面的代码中,我们创建了一个 SqlCommand 实例,并指定了要执行的 SQL 查询。然后,我们将 SqlCommand 实例传递给 SqlDataReader 构造函数中,以便可以通过 ExecuteReader() 方法来执行查询。

将结果转换为 JSON 字符串

将查询结果转换为 JSON 字符串是本文的重点。在 C# 中,我们可以使用 Newtonsoft.Json 库来完成这个任务。该库也称为 Json.NET。

首先,我们需要使用以下命令安装 Newtonsoft.Json 库:

PM> Install-Package Newtonsoft.Json

安装完成后,我们可以使用 JsonConvert 类将查询结果转换为 JSON 字符串。以下是一个例子:

using Newtonsoft.Json;

List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
using (SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection))
using (SqlDataReader reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        Dictionary<string, object> row = new Dictionary<string, object>();
        for (int i = 0; i < reader.FieldCount; i++)
        {
            row[reader.GetName(i)] = reader.GetValue(i);
        }
        rows.Add(row);
    }
}

string jsonString = JsonConvert.SerializeObject(rows);

在上面的代码中,我们首先定义了一个 List<Dictionary<string, object>> 类型的变量 rows,用于保存查询结果。然后,我们遍历查询结果的每一行,并将其转换为 Dictionary<string, object> 类型的数据。在这个字典中,键表示列名,值表示该行在该列中的值。

最后,我们使用 JsonConvert.SerializeObject() 方法将 rows 变量转换为 JSON 字符串。

将 JSON 字符串写入文件

最后,我们需要将 JSON 字符串写入文件中。为了实现这一点,我们可以使用 File.WriteAllText() 方法。以下是一个简单的例子:

using System.IO;

string fileName = "output.json";
File.WriteAllText(fileName, jsonString);

在上面的代码中,我们首先定义一个文件名。然后,我们使用 File.WriteAllText() 方法将 JSON 字符串写入名为 output.json 的文件中。

结论

在本文中,我们介绍了如何使用 C# 和 SQL Server 将查询结果输出到 JSON 文件中。我们讨论了如何连接到 SQL Server 数据库,执行 SELECT 查询,将结果转换为 JSON 字符串,以及将 JSON 字符串写入文件中。您可以根据自己的需求进行修改和改进。