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

时间:2016-09-09 04:39:05

标签: c# asp.net foreach

我有一个包含数据表的会话。现在我希望使用foreach循环获取每个数字并将其存储在数据库中。我试过一个代码。但它显示此错误消息。 “

  

无法将'char'类型转换为'System.Web.UI.WebControls.ListItem'“

我该怎么办?

这是我的代码

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;

2 个答案:

答案 0 :(得分:1)

此错误即将发生,因为您正在将Session["PolicyTable"]作为ListItem进行迭代。将其更改为DataRow。此外,如果会话变量包含数据表,您将迭代不能成为字符串的行。即使它包含单个列,您也应该将其值检索为:

DataTable dtSessionTable = (DataTable)Session["PolicyTable"];

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

答案 1 :(得分:0)

错误在此行

cellVal = item.ToString(); 

这应该是:

cellVal = item.Text;

cellVal = item.Value;