C# 正确填充多维数组

C# 正确填充多维数组,c#,.net,C#,.net,我试图用SQL数据库中的数据填充多维数组。因为没有像myarray这样的函数。为此,我想出了一些其他的方法。但它不起作用!我正在使用C.net 下面一行给出了错误:arr[counter2]={myDataReader[rating],myDataReader[date]} public string[,] getData(int id) { string queryString = "SELECT rating, date FROM rating WHERE id

我试图用SQL数据库中的数据填充多维数组。因为没有像myarray这样的函数。为此,我想出了一些其他的方法。但它不起作用!我正在使用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语句。

您可以在ArrayList中使用ArrayList 数据库结果更好,因为它们是动态的,不需要声明大小。 见以下帖子:

使用锯齿状阵列:

public string[][] getData(int id)
...
string[][] arr = new string[counter][];
...
arr[counter2] = new string[] {myDataReader["rating"], myDataReader["date"]};
或分别分配每个条目:

arr[counter2,0] = myDataReader["rating"];
arr[counter2,1] = myDataReader["date"]; 

您希望数据进入数组而不是数据表有什么特别的原因吗?您的rating和date数据库列是否都是字符串类型,如varchar?@Justin Yeah,不知道这些int来自何处。我将其更改为string[],但在data.ToArray;我遇到以下错误:无法将类型“string[][]”隐式转换为“string[,]”