KevinClaassens Ответов: 1

Проблема с получением значения из выпадающего списка


У меня возникли проблемы с добавлением значений в базу данных. При нажатии на кнопку я получаю сообщение об ошибке
: Input string was not in a correct format
Я проверил, и типы данных в sql server действительно совпадают с тем, что есть в коде. Ошибка заключается в том, что
m.venueID = Convert.ToInt32(ddlvenue.SelectedValue);
линия.

Класс встречи выглядит следующим образом:
public class MEETING
{
        private int MeetingID;
        private int VenueID;
        private string Venue;
        private string MeetingName;
        private DateTime MeetingStartDate;
        private DateTime MeetingEndDate;

        public int meetingID 
        {
            get { return MeetingID; }
            set { MeetingID=value;}
        }
        public int venueID 
        {
            get { return VenueID; }
            set { VenueID=value;}
        }
        public string meetingName 
        {
            get { return MeetingName; }
            set { MeetingName=value;}
        }
        public DateTime meetingStartDate
        {
            get { return MeetingStartDate; }
            set { MeetingStartDate=value;}
        }
        public DateTime meetingEndDate 
        {
            get { return MeetingEndDate;}
            set { MeetingEndDate=value;}
        }
        public string venue
        {
            get { return Venue; }
            set { Venue = value; }
        }
    }


Что я уже пробовал:

protected void btnMeetings_Click(object sender, EventArgs e)
{
    MEETING m = new MEETING();

    try
    {
        m.meetingName = tbMeetingName.Text.ToString();
        m.venueID = Convert.ToInt32(ddlvenue.SelectedValue);
        m.meetingStartDate = Convert.ToDateTime(datePickerStart.Text); ;
        m.meetingEndDate = Convert.ToDateTime(datePickerEnd.Text);


        BusinessLogicLayer bl = new BusinessLogicLayer();
        try
        {
            //Popup label onga
            lblResult.Visible = true;
            lblResult.Text = "Added Succesfully";
            if (bl.AddMeeting(m) == true)
            {
                lblResult.Text = "Meeting was added successfully";

                Response.Redirect("WebForm14.aspx");
            }
        }
        catch (Exception exc)
        {
            lblResult.Visible = true;
            lblResult.Text = "";
            lblResult.Text = lblResult.Text + exc.ToString();
        }
    }
    catch (Exception exc)
    {
        lblResult.Visible = true;
        lblResult.Text = "";
        lblResult.Text = lblResult.Text + exc.ToString();
    }


}

1 Ответов

Рейтинг:
5

F-ES Sitecore

Что бы ни было в "ddlvenue.SelectedValue" не может быть преобразован в int, поэтому ToInt32 терпит неудачу. Мы не знаем, что находится в SelectedValue, и мы не знаем, каково желаемое поведение, поэтому мы действительно не можем предложить решение. Если SelectedValue может быть не-int, то используйте int.TryParse, а не ToInt32, так как это позволит, если значение не может быть преобразовано. Если значение должно быть только int, то что-то в вашем коде где-то не так, опять же из того, что вы опубликовали, невозможно сказать.

Научитесь использовать отладчик, чтобы вы могли пройти через свой код и проверить значения переменных, чтобы получить представление о том, что происходит.


KevinClaassens

Большое вам спасибо за вашу помощь. Я понял где где я ошибся