一个事件处理程序中的多个按钮不起作用

时间:2018-08-10 18:03:56

标签: c# asp.net

下面是okButton_Click函数,我试图在其中添加多个按钮。我遇到错误

  

输入字符串的格式不正确

我已经阅读了有关类似问题的其他解决方案,但是仍然无法修复下面的代码。任何帮助将不胜感激。

忘记了前面提到的两个按钮都可以单独使用。意思是,如果我评论第一个按钮,则第二个按钮起作用,反之亦然。

 using (SqlCommand com = new SqlCommand("updateStudent", connection))
 {
        com.CommandType = CommandType.StoredProcedure;

        com.Parameters.AddWithValue("@studentNum", studentNum.Text);

        com.Parameters.Add("@studentName", SqlDbType.NVarChar).Value = studentName.Text;

        foreach (ListItem item in lstCourse.Items)
        {
             if (item.Selected)
             {
                   com.Parameters.Add("@courses", SqlDbType.NVarChar).Value = " " + item.Text + " ";
              }
         }
         com.ExecuteNonQuery();
         com.Parameters.Clear();
       }
   }

1 个答案:

答案 0 :(得分:2)

所以这行给你错误。

TriangleProperties pythagorasTheorem = new TriangleProperties(
        int.Parse(heightTextBoxforPyT.Text),
        int.Parse(baseTextBoxforPyT.Text), 
        0);

看看int.Parse()方法documentation

在此方法可能会生成的例外情况下:

  

FormatException :格式不正确。

因此,任一文本框中的实际文本都不是有效的整数。即使结尾处有空格,例如spacetab,也仍然无法使用,并且会出现此错误。

您应该使用int.Parse()which will check if the conversion is possible而不是int.TryParse(),如果是,将返回true,如果不可能,将返回false。如果转换有效,则out参数将包含转换后的值。

因此您的代码应类似于:

if(int.TryParse(heightTextBoxforPyT.Text, out int heightVal) && 
   int.TryParse(baseTextBoxforPyT.Text, out int baseVal))
{
    TriangleProperties pythagorasTheorem = new TriangleProperties(heightVal, baseVal, 0);
}
else
{
    // Perhaps output an error message
}