Roopa B N Ответов: 2

Получать конвертации из БД значение null, чтобы дважды не действует


Private Sub proceedButton_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles proceedButton.ServerClick
      Try
          hidden2.Value = "7"
          Dim dschkchqdtls As DataSet
          Dim ordrnum As String
          If ddlordernmber.SelectedValue = "" Then
              ordrnum = lblordernognrtd.Text
          Else
              ordrnum = lblordernum.Text.Trim()
          End If
          ViewState("gOrdernum") = ordrnum
          With New AMC
              dschkchqdtls = .Getdtlsforordrconvrsn(ordrnum, "CHKD")
          End With
          If dschkchqdtls.Tables(0).Rows.Count > 0 Then
              If dschkchqdtls.Tables(1).Rows.Count > 0 Then
                  proceedbuttonclick(ordrnum)
              Else
                  lblmessage.Text = ""
                  lblmessage.Text = "Cheque details are not available for previous invoice"
              End If
          Else
              proceedbuttonclick(ordrnum)
          End If
      Catch ex As Exception
          Throw ex
      End Try
  End Sub


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

Получение ошибки в приведенном выше коде, например преобразование из dbnull в double, недопустимо, пожалуйста, помогите....

2 Ответов

Рейтинг:
0

OriginalGriff

Цитата:
преобразование из dbnull в double недопустимо
А чего вы ожидали?
Значение dbnull.Значение-это "специальный код", который говорит:"строка, которую вы извлекли из своей базы данных, пуста в этом столбце - она вообще не имеет значения". Что это за число с плавающей запятой? Это не 0.0, это не -1, это не максимальное или минимальное значение, двойной может держать, или любое значение между ними Это маркер, который говорит: "здесь нет никакой информации", ни больше, ни меньше.

Если ваш столбец БД может содержать null, то вы должны проверить наличие нулевого значения при попытке его использовать - и решить для себя, что именно вы должны делать, когда получите DbNull, возвращенный из вашей БД. Поэтому используйте отладчик, выясните, где он возвращается, и выясните, почему в БД есть null и что с ним делать.

Мы не можем сделать это для вас: у нас нет доступа к вашим данным или какого-либо представления о том, где обрабатывается значение (но, по-видимому, оно находится в коде для Getdtlsforordrconvrsn или proceedbuttonclick ни то, ни другое вы не показываете).


Рейтинг:
0

Maciej Los

Вы должны проверить, не равно ли значение, хранящееся в этом поле, Значение dbnull.Поле Значения (Система)[^] затем преобразовать в двойной.

Дурацкая удача!