C# 循环通过列以存储在会话中
所以我有一个DataTable,它使用了一个“SELECT*FROM People WHERE ID=?”,您可以理解,这将只检索一行,因为ID是唯一的 我已将其列为一个列表:C# 循环通过列以存储在会话中,c#,asp.net,session,C#,Asp.net,Session,所以我有一个DataTable,它使用了一个“SELECT*FROM People WHERE ID=?”,您可以理解,这将只检索一行,因为ID是唯一的 我已将其列为一个列表: List<DataTable> userInfo = (List<DataTable>)HttpContext.Current.Session["userDT"]; List userInfo=(List)HttpContext.Current.Session[“userDT”]; 现在
List<DataTable> userInfo = (List<DataTable>)HttpContext.Current.Session["userDT"];
List userInfo=(List)HttpContext.Current.Session[“userDT”];
现在,我正在尝试执行foreach循环,该循环将遍历每一行并将列存储到会话中,这就是我目前所做的:
但是,我得到一个错误:
无法将类型“System.Data.DataTable”转换为“System.Data.DataRow”
有人知道我做错了什么吗?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];
}
}
}
那么,如何将类似first_name的列存储到会话中?您是否在询问如何访问名为“first_name”的列中的值?或者您正在寻找列名?您不应该在会话中将其存储为DataRow或普通值。相反,创建一个包含要存储的属性的类,并将其存储在会话中。