我有一个包含数据表的会话。现在我希望使用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;
答案 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;