пожалуйста, помогите мне создать параметр Nullable String в Vb.NET - PullRequest
1 голос
/ 18 января 2010

скажите, пожалуйста, как реализовать параметр Nullable типа string в vb.net

Функция:

sub savedetail(byval name as string, byval age as integer)
if name isnot nothing then
some work
end if
end sub

Я называю это как вещь

savedetail(nothing,34) //here is giving me format exception

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

Теперь я размещаю функцию exect .. пожалуйста, скажите мне, где я делаю ошибку:

Function savedetails(ByVal db As DSLibrary.DataProviders.SqlProvider, ByVal name As String, ByVal cityId As Integer, ByVal addr1 As String, ByVal addr2 As String, ByVal phone As String, ByVal fax As String, ByVal zip As String, ByVal contactfname As String, ByVal contactlname As String, ByVal randomcode As String, ByVal reservationEmail As String, ByVal email As String, ByVal url As String, ByVal description As String, ByVal locationInfo As String, ByVal amenities As String, ByVal roomDetails As String, ByVal latitude As Double, ByVal longitude As Double, ByVal enabled As Integer, Optional ByVal hotelId As Integer = Nothing, Optional ByVal checkDuplicate As Boolean = True, Optional ByVal DSPartner As Integer = Nothing, Optional ByVal category As String = Nothing, Optional ByVal rating As Integer = Nothing) As Integer

вызов:

savedetails(db, hotelname, 0, address, Nothing, Nothing, Nothing, postal, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, hotelinfo, Nothing, service, Nothing, Convert.ToDouble(lat), Convert.ToDouble(longi), 1, Convert.ToInt32(hotelid), False, dspartnerid)

1 Ответ

5 голосов
/ 18 января 2010

Errrhm. По умолчанию строка может иметь значение null, поскольку она является ссылочным типом.

Редактировать после предоставления дополнительной информации: Один из Convert.ToDouble() и Convert.ToInt32(), вероятно, выбрасывают это исключение. Либо используйте отладчик, установите точку останова на вызове и проверьте параметры этих преобразований, либо переместите их за пределы вызова.

...