Отображение количества записей с использованием VB.net и Oracle 10g DB - PullRequest
0 голосов
/ 28 января 2011

Я пытаюсь получить количество записей в моем следующем запросе:

myCommand = New OleDbCommand("SELECT status, date, theTitle, 
                             theMessage, date2, COUNT(*) over () as countNum 
FROM Blah blah... 

dr = myCommand.ExecuteReader()
MessageBox.Show(dr(5))

Но это просто закрывает мою программу. Если я это прокомментирую, то он просто заполняется и не закрывается.

Что я могу сделать, чтобы исправить это?

связанный вопрос Количество записей с помощью Read ()

ОБНОВЛЕНИЕ: все заработало. Я просто сделал ошибку, не ставя dr (5) ПОСЛЕ while dr.Read ()

David

1 Ответ

2 голосов
/ 28 января 2011

Я выкладываю это, чтобы надеяться попасть на правильный путь

Private Shared Sub Main(args As String())
    Console.WriteLine("Demo: reader ")

    ' Connect
    Dim connectStr As String = getConnection()

    Dim SQL As String
    SQL = "select STATUS , date1  , theTitle  , theMessage  , date2  , COUNT( * ) over( ) as countNum   from    (select        TO_CHAR( level, '000' ) STATUS      , sysdate date1      , level || 'aaa' theTitle      , sysdate + 1 DATE2      , level || 'bbb' theMessage      , count( * ) over( ) countRows       from        dual        connect by level < 10    )"

    Dim connection As New OracleConnection(connectStr)
    Dim cmd As New OracleCommand(SQL, connection)
    cmd.CommandType = CommandType.Text

    Try
        connection.Open()
        Dim reader As OracleDataReader = cmd.ExecuteReader()
        While reader.Read()
            Console.WriteLine(reader(0))
            Console.WriteLine(reader(1))
            Console.WriteLine(reader(2))
            Console.WriteLine(reader(3))
            Console.WriteLine(reader(4))
            Console.WriteLine(reader(5))

        End While
    Catch e As Exception
        Console.WriteLine(e.Message)
    End Try

    Console.WriteLine("Done")
End Sub

теперь это работает (обратите внимание, мне пришлось изменить зарезервированное слово "date" на "date1"

иди и попробуй (или хотя бы запрос) и посмотри, работает ли он. если он запустится, то я подозреваю, что что-то не так с возвращаемыми данными запроса

сообщение об ошибке указывает, что в считывателе данных нет 5-го (или, возможно, 4-го) элемента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...