2015-04-08 4 views
0

Итак, у меня есть DataTable, который использует «SELECT * FROM People WHERE ID =?». вы можете понять, что это будет восстановить только одну строку, как идентификатор является уникальнымЦитирование, хотя столбцы для хранения в сессии

Я отливают его в список:

List<DataTable> userInfo = (List<DataTable>)HttpContext.Current.Session["userDT"]; 

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

Однако я получаю сообщение об ошибке:

Невозможно преобразовать тип «System.Data.DataTable» до «System.Data.DataRow»

Кто-нибудь знает, что я делаю неправильно?

+0

Нельзя хранить его как DataRow или простое значение в сеансе. Вместо этого создайте класс, который содержит свойства, которые вы хотите сохранить, и сохраните их в сеансе. – mason

ответ

0

userInfo - это список таблиц. Вы должны пройти через нее, и для каждой таблицы вы можете получить доступ к строкам таблицы:

 foreach (DataTable dt in userInfo) 
     { 
      foreach (DataColumn column in dt.Columns) 
      { 
       // if you want column names here is how you would get them 
       string columnName = column.ColumnName; 

       foreach (DataRow row in dt.Rows) 
       { 
        // if you want the values in the cells, here's where you get them 
        object value = row[column]; 
       } 
      } 
     } 
+0

Итак, как бы я мог хранить столбец типа first_name в сеансе? – Samrikan

+0

Вы спрашиваете, как получить доступ к значению в столбце с именем «first_name»? Или вы ищете имена столбцов? –

Смежные вопросы