Входная строка имела неправильный формат

День Все,

У меня есть раскрывающийся список, который извлекает данные из моей базы данных SQL и дает пользователям два варианта на выбор (еженедельно/ежемесячно). В базе данных есть идентификатор для каждого из них. Еженедельно установлено значение 1, а ежемесячно — 2. Этот раскрывающийся список связан с представлением сетки, которое извлекает/отображает данные на основе выбранного элемента. Все это прекрасно работает.

У меня проблема в том, что я хочу добавить некоторый код в событие загрузки страницы Page_, чтобы заполнить текстовое поле выбранным элементом. Я также хотел бы установить раскрывающийся список по умолчанию еженедельно, когда пользователи обращаются к этой странице. я думал, что два следующих бита кода будут работать, но я получаю сообщение «Входная строка была в неправильном формате».

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    'This works fine
    lblTodaysDate.Text = GetDate()


    'I thought i could complete an If Statement to get the text box to work.
    If DropDownList1.SelectedValue = 1 Then
        txtMeeting.Text = "SMC Weekly Meeting"
    Else
        txtMeeting.Text = "SMC Monthly Meeting"
    End If


End Sub

Я новичок в .net, но читал, что мне может понадобиться преобразовать мой int в строку?

Любая помощь заранее будет очень признательна.

С уважением Бетти.


person Betty    schedule 12.04.2012    source источник
comment
Какая строка вызывает ошибку?   -  person mgnoonan    schedule 12.04.2012
comment
Вы говорите, что lblTodaysDate.Text = GetDate() работает нормально, но что такое GetDate()? Чтобы получить текущую дату, вам просто нужно Date.Now.ToShortDateString.   -  person Tim Schmelter    schedule 12.04.2012


Ответы (3)


Сначала убедитесь, что ваше значение является числовым, если это так, то преобразуйте его в целое число и сравните с 1:

If IsNumeric(DropDownList1.SelectedValue) AndAlso CInt(DropDownList1.SelectedValue)=1
    txtMeeting.Text = "SMC Weekly Meeting"
Else
    txtMeeting.Text = "SMC Monthly Meeting"
End If
person Curt    schedule 12.04.2012
comment
Большое спасибо за вашу помощь, это работает, так как выбранное значение является числовым, а не строковым. - person Betty; 12.04.2012

Просто попробуйте заключить желаемое значение в кавычки, например:

If DropDownList1.SelectedValue = "1" Then
    txtMeeting.Text = "SMC Weekly Meeting"
Else
    txtMeeting.Text = "SMC Monthly Meeting"
End If
person Anderson Pimentel    schedule 12.04.2012

Вам нужно будет проверить IsPostBack, иначе ddl SelectValue будет сброшен.

NB: Мой Vb.Net немного заржавел

ie

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Me.IsPostBack Then

        'This works fine
        lblTodaysDate.Text = GetDate()

        'I thought i could complete an If Statement to get the text box to work.
        If DropDownList1.SelectedValue = "1" Then
            txtMeeting.Text = "SMC Weekly Meeting"
        Else
            txtMeeting.Text = "SMC Monthly Meeting"
        End If
    Else
        ' Put your code to populate the ddl here


    End If
End Sub
person Jason Jong    schedule 12.04.2012