Как конвертировать DataSet в список <ArrayList>? - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть набор данных ds и список ArrayList newpath, я хочу добавить (назначить) ds для newpath как это возможно.

public List<ArrayList> newpath
    {
        set { ViewState["newpath"] = value; }
        get
        {
            if (ViewState["newpath"] == null)
                return new List<ArrayList>();
            else
                return (List<ArrayList>)ViewState["newpath"];
        }
    }

я пытаюсь с

foreach (DataRow dataRow in Ftb.Rows)//Ftb is datatable
 {
    newpath.Add(dataRow);//newpath is List<ArrayList>
 }

и

foreach (DataRow dRow in ds.Tables[0].Rows)
 {
   newpath.Add(dRow);
 } 

если я делаю как выше, то я получаю ошибку «У наилучшего перегруженного метода совпадения для« System.Collections.Generic.List.Add (System.Collections.ArrayList) »есть недопустимые аргументы»

Пожалуйста, помогите мне, если каким-то образом .. как это сделать

Ответы [ 4 ]

2 голосов
/ 16 ноября 2011

Я предполагаю, что вы хотите, чтобы каждый элемент в newpath содержал значения столбцов каждой строки?
Если это так, используйте такой код:

foreach (DataRow dataRow in Ftb.Rows)//Ftb is datatable
{
    ArrayList values = new ArrayList();
    foreach (object value in dataRow.ItemArray)
        values.Add(value);
    newpath.Add(values);
}
0 голосов
/ 18 ноября 2011

Я изменил код @Shadow Wizard и теперь он работает нормально

List<ArrayList> newval = new List<ArrayList>();
    foreach (DataRow dRow in ds.Tables[0].Rows)
      {
        ArrayList values = new ArrayList();
        foreach (object value in dRow.ItemArray)
            values.Add(value);
            newval.Add(values);
      }
 newpath = newval;
0 голосов
/ 16 ноября 2011

изменить newpath с

List<ArrayList> 

до

List<DataRow>
0 голосов
/ 16 ноября 2011

Из кода, который вы опубликовали, выглядит, как будто ваша переменная newpath представляет собой список ArrayLists.Поэтому, когда вы пытаетесь добавить dRow, то есть DataRow, вы получаете ошибку, поскольку это не ArrayList.

Если вы хотите добавить DataRows, я думаю, что newpath должен быть спискомDataRow.Если вы хотите заполнить ArrayList данными из DataRow, вам нужно что-то вроде этого -

foreach (DataRow dataRow in Ftb.Rows)//Ftb is datatable
 {
      ArrayList myAL = new ArrayList();
      myAL.Add(dataRow["your_column_name"]);
      //add fields from DataRow to array list using your required logic
      newpath.Add(myAL);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...