C#将MySQL结果拉入数组

时间:2014-11-22 18:27:05

标签: c# mysql arrays

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

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] [“Column”];

我的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..

            }
        }

1 个答案:

答案 0 :(得分:3)

如果你想把所有行都放到一个数组中,你可以使用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"];