Система.FormatException: входная строка была в неправильном формате

#asp.net #exception #drop-down-menu #add #formatexception

#asp.net #исключение #выпадающее меню #Добавить #formatexception

Вопрос:

В следующем коде, когда я пытаюсь добавить элемент в выпадающий список ASP, System.FormatException: входная строка была не в правильном формате, выбрасывается.

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

public partial class ScheduleExam : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        String connection = System.Configuration.ConfigurationManager.ConnectionStrings["TYCConnection"].ConnectionString;

        String branch = Request.Form["ctl00$ctl00$MainContent$AdminMainContent$BranchDropDownList"];
        if (!String.IsNullOrWhiteSpace(branch))
        {
            if (!branch.Equals("00"))
            {
                SqlConnection sqlConn = new SqlConnection(connection);
                String semQuery = "select totalSem from branchTable where branchId='"   branch   "'";
                SqlCommand semCommand = new SqlCommand(semQuery, sqlConn);

                sqlConn.Open();
                SqlDataReader semReader = semCommand.ExecuteReader();
                semReader.Read();
                int totalSem = Int32.Parse(semReader["totalSem"].ToString());
                SemesterDropDownList.Items.Clear();
                SemesterDropDownList.Enabled = true;
                //ListItem list = new ListItem("Select");
                SemesterDropDownList.Items.Add(new ListItem("select"));
                for (int sem = 1; sem <= totalSem; sem  )
                {
                    //SemesterDropDownList.Items.Add(sem.ToString());
                }
                sqlConn.Close();
            }
            else
            {
                SemesterDropDownList.Items.Clear();
                SemesterDropDownList.Enabled = false;
                //SemesterDropDownList.Items.Add("First Select Branch");
            }
        }
        else
        {
            SemesterDropDownList.Enabled = false;
            //SemesterDropDownList.Items.Add("First Select Branch");
        }
    }
    protected void RegisterButton_Click(object sender, EventArgs e)
    {

    }
}
  

Однако, когда я комментирую все такие строки, не возникает исключения.

В чем может быть проблема и ее возможное решение?

Комментарии:

1. Начните с использования отладчика для пошагового выполнения кода. В какой именно момент вы получаете ошибку?

Ответ №1:

Вместо

 int totalSem = Int32.Parse(semReader["totalSem"].ToString());
  

попробуйте

 int totalSem;
Int32.TryParse(semReader["totalSem"].ToString(),totalSem);
  

и если это устраняет исключение, тогда рассмотрите решение проблем с этим полем.