C# 将 MySQL 结果拉入数组

本文关键字:数组 结果 MySQL | 更新日期: 2023-09-27 18:31:28

我想将我查询的内容拉入数组中。

SELECT * FROM `x`
可能有 1 个结果

或 1,000 个结果。列会有所不同,我的意思是,我宁愿含糊不清,也不愿为每个查询编写特定的解释器,我宁愿函数确定列名。

那么我真正想要的是什么?

<?php
    $results = mysql::query("SELECT * FROM x");
    $holding = array();
    //Now we get the results.
    while ($row = mysql_fetch_assoc($results)) $holding[] = $row;
?>

显然这不是 C#,但我想要等效的。我希望我的所有结果都保留它们的列名,在一个数组中,这样我就可以调用 hold[0]["列"];

我的 C# 代码如下所示。

            if (connected)
        {
            MySqlCommand cmd = new MySqlCommand(query, conn);
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read()){
                //The problem is here, I don't know how to add them to a list/array retaining column names etc..
            }
        }

C# 将 MySQL 结果拉入数组

如果你想把所有行都放到一个数组中,你可以使用 Linq to DataTable 来实现:

var dt = new DataTable();
dt.Load(cmd.ExecuteReader());
var rows = dt.AsEnumerable().ToArray();

然后你有一个DataRows数组,你可以使用DataRow的索引器获取特定列的值,例如:

// value of the id column of first row
var value = rows[0]["id"];