【问题标题】:MySql query to two dimensional array in c#在 C# 中,MySql 查询二维数组
【发布时间】:2020-08-12 07:50:15
【问题描述】:

我想用阅读器从 mysql 查询中读取数据并将其转换为二维数组。怎么做?我尝试使用数据表,但在最后一行出现错误。

MySqlDataReader Reader = Command.ExecuteReader();
DataTable Result = new DataTable();
Result.Load(Reader);
Reader.Close();
return Result.AsEnumerable().Select(x => x.ItemArray).ToArray();

“无法将对象[][] 转换为字符串[][]”。

编辑:我用“for”循环解决了这个问题,但我不确定这是否是将mysql查询转换为二维数组的最佳方法,所以我仍在寻求您的帮助。

DataTable Result = new DataTable();
Result.Load(Command.ExecuteReader());

if (Result.Rows.Count > 0)
{
    object[][] Objects = Result.AsEnumerable().Select(x => x.ItemArray).ToArray();
    string[][] Texts = new string[Objects.Length][];
    for (int i = 0; i < Texts.Length; i++)
    {
        Texts[i] = new string[Objects[i].Length];
        for (int j = 0; j < Objects[i].Length; j++)
        {
            Texts[i][j] = Objects[i][j].ToString();
        }
    }
    return Texts;
}
else
{
    return null;
}

【问题讨论】:

    标签: c# mysql arrays .net multidimensional-array


    【解决方案1】:

    "ToArray()" 转换为 Object 类型的数组。您必须将数组转换为字符串数组。 我希望这会有所帮助!

    【讨论】:

    • 我尝试使用return (string[][])Result.AsEnumerable().Select(x =&gt; x.ItemArray).ToArray(); 进行投射,但它不起作用。我用 try catch 包围它,现在出现“无法将 System.Object[][] 类型的对象转换为 System.String[][] 类型”错误。
    • 试试这样的:return Array.ConvertAll(Result.AsEnumerable().Select(x =&gt; x.ItemArray).ToArray(), x =&gt; x.ToString());
    • “无法从 string[] 转换为 string[][]。”请注意,我想要二维数组。
    • 好的,我用“for”循环来做,但以其他方式,谢谢你的帮助。但我不确定循环是否是将mysql查询转换为二维数组的最佳解决方案(性能等)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 2015-04-30
    • 2015-05-14
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多