我正在尝试通过session
中的GridView
更新我的行。只有GridView
中的行更新操作才会引发服务器错误。我项目中的其他操作运行正常。当我添加以下代码来更新索引时,它会引发服务器错误。请指导。
服务器错误 -
' /'中的服务器错误应用
无法转换类型为' System.String'的对象输入' System.Data.DataTable'。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidCastException:无法转换类型为' System.String'的对象输入' System.Data.DataTable'。
来源错误:
Line 107: con.Open();
Line 108:
Line 109: DataTable dt = (DataTable)Session["name"];
Line 110:
Line 111: //Update the values.
我的aspx.cs代码用于更新gridview中的行:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection con = new SqlConnection(strConnString);
con.Open();
DataTable dt = (DataTable)Session["name"];
//Update the values.
GridViewRow row = GridView1.Rows[e.RowIndex];
//int id = Convert.ToInt32(Label.[e.RowIndex].Values["id"].ToString());
dt.Rows[row.DataItemIndex]["name"] = ((TextBox)(row.Cells[1].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["role"] = ((TextBox)(row.Cells[2].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["gender"] = ((TextBox)(row.Cells[3].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["exp"] = ((TextBox)(row.Cells[4].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["join"] = ((TextBox)(row.Cells[5].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["report"] = ((TextBox)(row.Cells[6].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["email"] = ((TextBox)(row.Cells[7].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["mobile"] = ((TextBox)(row.Cells[8].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["birth"] = ((TextBox)(row.Cells[9].Controls[0])).Text;
dt.Rows[row.DataItemIndex]["address"] = ((TextBox)(row.Cells[10].Controls[0])).Text;
SqlCommand com = new SqlCommand("update_employee", con);
com.CommandType = CommandType.StoredProcedure;
com.Connection = con;
com.Parameters.Add("@id", SqlDbType.Int).Value = id;
com.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = name;
com.Parameters.Add("@address", SqlDbType.VarChar, 50).Value = address;
com.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = email;
com.Parameters.Add("@mobile", SqlDbType.VarChar, 50).Value = mobile;
com.Parameters.Add("@gender", SqlDbType.VarChar, 50).Value = gender;
com.Parameters.Add("@role", SqlDbType.VarChar, 50).Value = role;
com.Parameters.Add("@birth", SqlDbType.VarChar, 50).Value = birth;
com.Parameters.Add("@join", SqlDbType.VarChar, 50).Value = join;
com.Parameters.Add("@exp", SqlDbType.VarChar, 50).Value = exp;
com.Parameters.Add("@report", SqlDbType.VarChar, 50).Value = report;
com.ExecuteNonQuery();
com.Dispose();
con.Close();
GridView1.EditIndex = -1;
bindgrid();
}