gpt4 book ai didi

c# - 如何使用C#连接mysql并获取json数据?

转载 作者:行者123 更新时间:2023-11-30 22:12:38 28 4
gpt4 key购买 nike

如上所述:

我正在使用 C# 连接到 MySQL 数据库,我想读取 JSON 数据类型。我使用方法MySqlCommand.ExecuteReader:

using (MySqlConnection sconn = new MySqlConnection(sqlConnectString))  
{
sconn.Open();
String sql_Command = @"SELECT `id` FROM orders.jsontest;";

using (MySqlCommand scmd = new MySqlCommand(sql_Command, sconn))
{
**MySqlDataReader sdr = scmd.ExecuteReader();** // fatal error
DataTable datatable = new DataTable();

// ...
}
}

难道我这里不能使用ExecuteReader吗?

最佳答案

我知道this question is old ,但以防万一您还没有解决问题的方法或其他人遇到类似问题,以下代码应该适合您:

private IEnumerable<int> GetIds()
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
string commandText = @"SELECT id FROM jsontest"; // Assuming that `orders` is your database, then you do not need to specify it here.

using (MySqlCommand command = new MySqlCommand(commandText, connection))
{
MySqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
yield return reader.GetInt32(0);
}
}
}
}

现在你要注意的是这一行

while (reader.Read())

只要 MySqlDataReader 仍然可以读取有效结果和这一行,它就会从 jsontest 表中获取结果

yield return reader.GetInt32(0);

它指示reader 获取并返回获取表的每条记录one at a time作为 Int32 (int)。如果您的表列类型不是 INT,您需要更改它。由于您只选择了一列(即 "SELECT id"),参数为 0,因为您获取的结果表仅包含一列。

此外,在您的代码中,您似乎希望将结果作为 DataTable;如果是这样,您应该使用 MySqlDataAdapter 而不是 MySqlDataReader,如下所示:

DataTable resultTable = new DataTable("ResultTable");
MySqlDataAdapter adapter = new MySqlDataAdapter(command);
adapter.Fill(table);

关于c# - 如何使用C#连接mysql并获取json数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39565188/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com