protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = DB.createrDB();
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from score ", con);
DataSet ds = new DataSet();
da.Fill(ds); DataTable dt = ds.Tables[0]; foreach (DataRow dr in dt.Rows)
{
int score =Convert.ToInt32(dr["XZ_score"].ToString().Trim())+ Convert.ToInt32(dr["TK_score"].ToString().Trim()) + Convert.ToInt32(dr["PD_score"].ToString().Trim());
string sql = string.Format("update score set score = {0} where stuID = {1}", score, dr["stuID"].ToString().Trim());
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
}
con.Close();
Response.Write("<script language=javascript>window.close();</script>");
}运行时出现的错误异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 33: foreach (DataRow dr in dt.Rows)
行 34: {
行 35: int score =Convert.ToInt32(dr["XZ_score"].ToString().Trim())+ Convert.ToInt32(dr["TK_score"].ToString().Trim()) + Convert.ToInt32(dr["PD_score"].ToString().Trim());
行 36: string sql = string.Format("update score set score = {0} where stuID = {1}", score, dr["stuID"].ToString().Trim());
行 37: SqlCommand cmd = new SqlCommand(sql, con);
源文件: d:\biyesheji\result.aspx.cs 行: 35 堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2753155
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +102
System.Convert.ToInt32(String value) +68
result.Button1_Click(Object sender, EventArgs e) in d:\biyesheji\result.aspx.cs:35
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +116
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3838
{
SqlConnection con = DB.createrDB();
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from score ", con);
DataSet ds = new DataSet();
da.Fill(ds); DataTable dt = ds.Tables[0]; foreach (DataRow dr in dt.Rows)
{
int score =Convert.ToInt32(dr["XZ_score"].ToString().Trim())+ Convert.ToInt32(dr["TK_score"].ToString().Trim()) + Convert.ToInt32(dr["PD_score"].ToString().Trim());
string sql = string.Format("update score set score = {0} where stuID = {1}", score, dr["stuID"].ToString().Trim());
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
}
con.Close();
Response.Write("<script language=javascript>window.close();</script>");
}运行时出现的错误异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 33: foreach (DataRow dr in dt.Rows)
行 34: {
行 35: int score =Convert.ToInt32(dr["XZ_score"].ToString().Trim())+ Convert.ToInt32(dr["TK_score"].ToString().Trim()) + Convert.ToInt32(dr["PD_score"].ToString().Trim());
行 36: string sql = string.Format("update score set score = {0} where stuID = {1}", score, dr["stuID"].ToString().Trim());
行 37: SqlCommand cmd = new SqlCommand(sql, con);
源文件: d:\biyesheji\result.aspx.cs 行: 35 堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2753155
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +102
System.Convert.ToInt32(String value) +68
result.Button1_Click(Object sender, EventArgs e) in d:\biyesheji\result.aspx.cs:35
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +116
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3838
dr["TK_score"].ToString().Trim()
dr["PD_score"].ToString().Trim()
是否为int型,用Tryparse
dr["TK_score"].ToString().Trim()
dr["PD_score"].ToString().Trim()
有不能显示转换成int的字符,比如字符串ab显示转换成int,就会出现转换异常。
dr["TK_score"].ToString().Trim()
dr["PD_score"].ToString().Trim()这三个里面有一个或多个不能正确的转换为整数
id int
stuID varchar(15)
stuName varchar(15)
score int
XZ_score int
TK_score int
PD_score int
数据库里的数据:
18 1111 NULL NULL 5 0 0
19 1111 NULL NULL 5 0 0
20 1111 NULL NULL 5 0 0