Вызов набора данных из словаря в цикле foreach - PullRequest
0 голосов
/ 26 марта 2012

Как мне вызвать набор данных из словаря внутри цикла foreach?В приведенном ниже коде .Rows не существует, и набор данных является нулевым в цикле foreach.

public class dictWITHdataset
{
    public dictWITHdataset()
    {
        DataSets = new Dictionary<string, DataSet>();
    }

    public IDictionary<string, DataSet> DataSets { get; private set; }

    public DataSet readrows(DataSet dataset)
    {
        string query = "SELECT * FROM test.dbo.test";
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(query, conn);
        adapter.Fill(dataset);
        return dataset;
    }
}

Позже я пытаюсь вызвать набор данных из словаря в foreachloop, но он утверждает, что строки действительно существуют, и егоноль.

dictWITHdataset dict = new dictWITHdataset();
DataSet data = new DataSet();
dict.DataSets("Dictionary1",data) //not sure if correct way to call data set
foreach (System.Data.DataRow row in  dict.DataSets["Dictionary1"].Rows)
{
    @:row["id"] + " " + row["name"];
} 

1 Ответ

2 голосов
/ 26 марта 2012

Вы забыли вызвать вызов dict.readrows, таким образом, он добавляет только пустой набор данных. Кроме того, readrows не должен принимать параметр, вы можете создать его в функции.

dictWITHdataset dict = new dictWITHdataset();
DataSet data = new DataSet();
dict.DataSets("Dictionary1",dict.readrows(data)) 
foreach (System.Data.DataRow row in  dict.DataSets["Dictionary1"].Rows)
{
    @:row["id"] + " " + row["name"];
}
...