我正在尝试查询我的mySQL数据库,并希望所有行都返回一个可以通过类似方式访问的数组。
rows[0]["column"]
rows[1]["column"].
我的代码目前是:
MySqlCommand cmd = new MySqlCommand(query, conn);
var dt = new DataTable();
dt.Load(cmd.ExecuteReader());
var rows = dt.AsEnumerable().ToArray();
所以我可以使用rows [0] [“column”]但行[1]是不可及的,就像dt.Load没有扫描所有行并将它们添加到列表中一样。
答案 0 :(得分:0)
我在这里给你一些伪代码,我没有尝试编译它但应该给你的想法,一般不要使用像“1”这样的静态索引来访问表中的第二行,更好的有一个循环或一些其他类型的动态方法,无论你的查询返回多少条记录,都会一直有效。
看看这个,省略了对紧凑性的异常处理
using(var conn = new MySqlConnection(connectionString))
using(var cmd = conn.CreateCommand())
{
conn.Open();
cmd.ComamndText = query;
var adp = new MySqlDataAdapter(cmd);
var dt = new DataTable();
adp.Fill(dt);
// here you can use the table's rows array to retrieve results
// for example
foreach (var row in dt.Rows)
{
//Do what you want now with this row
}
}