При использовании набора данных со строгим контролем типов тогда, необходимо сделать это:
If Not ediTransactionRow.Ispay_id1Null Then
'Do processing here
End If
Вы получаете ошибку, потому что набор данных со строгим контролем типов получает базовое значение и представляет преобразование через свойство. Например, вот по существу, что происходит:
Public Property pay_Id1 Then
Get
return DirectCast(me.GetValue("pay_Id1", short)
End Get
'Abbreviated for clarity
End Property
метод GetValue возвращает DBNull, который не может быть преобразован в короткое.
Эквивалент null
в VB Nothing
, таким образом, Ваша проверка хочет быть:
If editTransactionRow.pay_id IsNot Nothing Then
stTransactionPaymentID = editTransactionRow.pay_id
End If
Или возможно, если Вы на самом деле желаете проверить на нулевое значение SQL:
If editTransactionRow.pay_id <> DbNull.Value Then
...
End If
editTransactionRow.pay_id является Пустым поэтому на самом деле, Вы делаете: пустой указатель. ToString () и это не может быть выполнено. Необходимо проверить editTransactionRow.pay_id и не editTransactionRow.pay_id. ToString ();
Вы кодируете, должен быть (ЕСЛИ pay_id является строкой):
If String.IsNullOrEmpty(editTransactionRow.pay_id) = False Then
stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If
, Если pay_id является Целое число, чем Вы, может просто проверить, является ли это обычно пустым без Строки... Редактирование, чтобы показать Вам, если это не Строка:
If editTransactionRow.pay_id IsNot Nothing Then
stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If
, Если это от базы данных, Вы можете использовать IsDBNull, но в противном случае не используете его.
Необходимо проверить, чтобы гарантировать, что editTransactionRow не является пустым, и pay_id не является пустым.
If Not editTransactionRow.pay_id AndAlso String.IsNullOrEmpty(editTransactionRow.pay_id.ToString()) = False Then
stTransactionPaymentID = editTransactionRow.pay_id 'Check for null value
End If
If Short.TryParse(editTransactionRow.pay_id, New Short) Then editTransactionRow.pay_id.ToString()