如何使用foreach循环将会话中的值获取到数据集

本文关键字:获取 数据集 会话 何使用 foreach 循环 | 更新日期: 2023-09-27 18:06:21

我有一个会话,其中包括一个数据表。现在我想获得每个数字并使用foreach循环将其存储在数据库中。我试过一个密码。但是它显示了这个错误信息。"

无法将类型'char'转换为' system . web . ui . webcontrols . listtitem '"

我该怎么做呢?

这是我的代码

protected void policyDetails()
{
    DataSet ds = new DataSet();
    string cellVal = "";
    foreach (ListItem item in Session["PolicyTable"].ToString())
    {
        cellVal = item.ToString();
        ds = db.insertPolicyDetails(cellVal);
    }
}    

这是如何创建会话

dr = dt.NewRow();
dr["Policy_No"] = txtPolicy.Text.Trim();
dt.Rows.Add(dr);
grdPolicyDetails.DataSource = dt;
grdPolicyDetails.DataBind();
Session["PolicyTable"] = dt;

如何使用foreach循环将会话中的值获取到数据集

出现此错误是因为您将Session["PolicyTable"]迭代为listtitem。修改为DataRow。此外,如果会话变量包含数据表,您将遍历不能是字符串的行。即使它只包含一个列,您也应该将其值检索为:

DataTable dtSessionTable = (DataTable)Session["PolicyTable"];
foreach (DataRow item in dtSessionTable.Rows)
{
    cellVal = item["Policy_No"].ToString();
    ds = db.insertPolicyDetails(cellVal);
}

错误在这一行

cellVal = item.ToString(); 

应该是:

cellVal = item.Text;

cellVal = item.Value;