取出id时给Session["ID"]定义一个什么类型的变量 Session["ID"] = myds1.Tables[0].Rows[0]["ID"];
取出时的代码如下请高手们看看哪里错了
case 3:
DataTable dt;
if (Session["id"] == null)
{
dt = new DataTable();
}
else
{
dt = (DataTable)Session["id"]; } DataRow[] row1 = dt.AsEnumerable().ToArray(); //计算单选题成
foreach (DataRow answer1 in row1)
{
int_row1 += 1;
if (int_row1<= 10)
{
RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
if (rbl.SelectedValue == "")
{
this.lblSel.Text = int_row1Point.ToString();
}
else
{
float ti = DataList1.Items.Count;
if (answer1["que_answer"].ToString().Trim() == rbl.SelectedValue.ToString().Trim())
{
int_row1Point += 50 / ti;
this.lblSel.Text = int_row1Point.ToString();
}
}
}
}
break;
交卷后系统提示异常详细信息: System.InvalidCastException: 无法将类型为“System.Int64”的对象强制转换为类型“System.Data.DataTable”。红色代码部分提示错误
取出时的代码如下请高手们看看哪里错了
case 3:
DataTable dt;
if (Session["id"] == null)
{
dt = new DataTable();
}
else
{
dt = (DataTable)Session["id"]; } DataRow[] row1 = dt.AsEnumerable().ToArray(); //计算单选题成
foreach (DataRow answer1 in row1)
{
int_row1 += 1;
if (int_row1<= 10)
{
RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
if (rbl.SelectedValue == "")
{
this.lblSel.Text = int_row1Point.ToString();
}
else
{
float ti = DataList1.Items.Count;
if (answer1["que_answer"].ToString().Trim() == rbl.SelectedValue.ToString().Trim())
{
int_row1Point += 50 / ti;
this.lblSel.Text = int_row1Point.ToString();
}
}
}
}
break;
交卷后系统提示异常详细信息: System.InvalidCastException: 无法将类型为“System.Int64”的对象强制转换为类型“System.Data.DataTable”。红色代码部分提示错误
你这里赋值的时候 得看myds1.Tables[0].Rows[0]["ID"]是什么类型,应该是个int64的,不是datatable
if (Session["id"] == null)
{
dt = new DataTable();
}
else
{
dt = (DataTable)Session["id"]; }
你这里想让Session["id"]转换为DataTable,是不可能的,因为Session["id"]是int64类型的,就是说你可以
int64 id=Session["id"];
这里你就可以dt = (DataTable)Session["id"];了