我正在尝试在管理员登录时批准asp.net中的文档然后他们批准文档2或3天前代码工作正常我再次打开我的项目并批准文档它显示我错误 “输入字符串格式正确”
这是按钮代码..
protected void Button1_Click(object sender, EventArgs e)
{
string connStr =
ConfigurationManager.ConnectionStrings["mydms"].ConnectionString;
SqlConnection mySQLconnection = new SqlConnection(connStr);
try{
mySQLconnection.Open();
for (int i = 0; i < Repeater2.Items.Count; i++)
{
DropDownList DropDownListcontrol =
((DropDownList)Repeater2.Items[i].FindControl("DropDownList4"));
Label DocId = ((Label)Repeater2.Items[i].FindControl("DocId"));
SqlCommand cmd = new SqlCommand("approveddd", mySQLconnection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@DocID", SqlDbType.Int).Value =
Convert.ToInt32((DocId.Text));
cmd.Parameters.Add("@ApproveID", SqlDbType.Int).Value =
Convert.ToInt32(DropDownListcontrol.SelectedValue);
cmd.Parameters.Add("@ApproveBy", SqlDbType.VarChar, 50).Value =
(Session["Login2"]);
cmd.ExecuteNonQuery();
DMSLIB.Doc myDoc = new DMSLIB.Doc();
myDoc.MarkDocAs(Convert.ToInt16(DocId.Text),
Convert.ToInt32(DropDownListcontrol.SelectedValue));
}
}
catch (Exception ex)
{
apfi.Text = "Error";
}
finally
{
mySQLconnection.Close();
}
}
请任何人告诉我问题出在哪里...... ??
答案 0 :(得分:0)
DropDownListcontrol.SelectedValue
或DocId.Text
中的一个具有无法转换为整数的字符串值。设置一个断点,看看你有什么。断点是代码行左侧的一个小红圈,可以通过鼠标单击设置。一旦应用程序停止,您就可以通过将鼠标光标拖到它们上来查看实际变量值。
答案 1 :(得分:0)
虽然我不能肯定地说,但您似乎已经出现了类型转换问题。
但是,您真正的问题在于您的调试知识。我建议您在IDE中完成一些关于调试的在线教程(我将假设它是Visual Studio),并了解出现的不同类型的错误以及导致它们的原因。这将帮助您读取错误的堆栈跟踪并理解它们。
如果您正在使用Visual Studio 2010,那么本文帮助我很快学习了很快调试的基础知识。 http://www.codeproject.com/Articles/79508/Mastering-Debugging-in-Visual-Studio-2010-A-Beginn