如何使用c#连接到mysql并获取json数据

本文关键字:获取 json 数据 mysql 何使用 连接 | 更新日期: 2023-09-27 18:07:26

如上所述:

我使用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吗?

如何使用c#连接到mysql并获取json数据

我知道这个问题很老了,但万一你还没有解决你的问题或其他人遇到类似的问题,下面的代码应该为你工作:

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())

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

yield return reader.GetInt32(0);

指示reader每次获取并返回获取表中的每条记录作为Int32 (int)。如果您的表列类型不是INT,则需要更改此设置。由于您只选择了一列(即"SELECT id"),因此参数为0,因为您获取的结果表仅由一列组成。

此外,在你的代码中,你似乎想要得到结果作为一个DataTable;如果是这样,您应该使用MySqlDataAdapter而不是MySqlDataReader,如下所示:

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

更正sql命令

String sql_Command = @"SELECT id FROM  orders.jsontest";