从MySQL获取结果

时间:2014-11-23 14:43:16

标签: c# mysql datatable

我正在尝试查询我的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没有扫描所有行并将它们添加到列表中一样。

1 个答案:

答案 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
    }
}