c# - 正确填充多维数组

标签 c# .net

我正在尝试使用 SQL 数据库中的数据填充多维数组。因为没有像 myarray.Add 这样的函数,所以我想出了其他方法。但它不起作用!我正在使用 C# .net 以下行给出错误: arr[counter2] = {myDataReader["rating"], myDataReader["date"]};

public string[,] getData(int id)
    {


        string queryString = "SELECT rating, date FROM rating WHERE id = '" + id + "'";
        SqlDataReader myDataReader = Database.sqlDataReader(queryString);

        if (myDataReader.HasRows)
        {
            int counter = 0;
            while (myDataReader.Read())
            {
                counter++;
            }
            string[,] arr = new string[counter, 2];
            int counter2 = 0;
            while (myDataReader.Read())
            {
                counter2++;
                arr[counter2] = {myDataReader["rating"], myDataReader["date"]};
            }
        }

        return arr;
    }

有人可以帮我解决这个问题,或者向我解释做同样事情的另一种(可能是更好的)方法吗?

最佳答案

这太复杂了。试试这个:

public string[,] getData(int id)
{        
    string queryString = "SELECT rating, date FROM rating WHERE id = '" + id + "'";
    List<string[]> data = new List<string[]>();

    using(SqlDataReader myDataReader = Database.sqlDataReader(queryString))       
        while(myDataReader.Read())        
            data.Add(new int[] { (string)myDataReader["rating"], (string)myDataReader["date"] });

    return data.ToArray();
}

另外,您确实不应该连接 SQL 语句。

关于c# - 正确填充多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030504/

相关文章:

c# - Spring 在 nhibernate 事务后不关闭 session

c# - 将扩展类与基类合并

c# - Visual Studio Express 2013 中的代码契约(Contract)支持

.net - ./在我使用 OpenFileDialog 时更改目标

c# - BackgroundWorker,方法

c# - 条件 C# 断点?

c# - 在 Silverlight 的 Canvas 上动态绘制图像

.net - 无法从 WPF 应用程序访问 WCF websocket 服务

c# - 返回程序顶部再试一次

c# - WinForms:SplitContainer 的替代品?