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