我想将我查询的内容拉入数组。
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..
}
}
答案 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"];