правильно работать с нулевыми значениями базы данных в vb.net - PullRequest
1 голос
/ 01 января 2012

Я перебираю данные и печатаю каждую строку на консоль, и я продолжаю получать ошибку dbnull. Я вставил оператор if в свой цикл, чтобы попытаться его перехватить, но я не могу заставить его работать. Есть идеи?

Спасибо!

                Do While reader.Read
                For i As Integer = 0 To reader.FieldCount - 1

                    If reader.IsDBNull(i) Then
                        Console.Write(Nothing)
                    Else
                        Console.Write(reader.GetString(i))
                    End If

                Next
                Console.WriteLine(Environment.NewLine())

Ответы [ 3 ]

2 голосов
/ 01 января 2012

Изменение Console.Write (Nothing) на Console.Write («Nothing») может устранить одну ошибку, а reader.GetString (i) может вызвать ошибки InvalidCastException - вы должны это отловить. reader.IsDBNull (i), однако, выглядит правильно.

1 голос
/ 01 января 2012

Почему бы просто не изменить его на

        If NOT isdbnull(reader.Item(i)) Then
            Console.Write("")
        Else
            Console.Write(CStr(reader.Item(i)))
        End If

Это всегда работало для меня лучше.Я не знаю, есть ли здесь проблема DBNull vs DBNull.value.

1 голос
/ 01 января 2012

Я никогда не использовал методы чтения, но Console.Write (Nothing), скорее всего, будет иметь проблемы.Попробуйте это:

        Do While reader.Read
        For i As Integer = 0 To reader.FieldCount - 1

            If reader.Item(i) Is DBNull.Value Then
                Console.Write("")
            Else
                Console.Write(CStr(reader.Item(i)))
            End If

        Next
        Console.WriteLine(Environment.NewLine())
    Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...