Идентификаторы не возвращают значения из базы данных - PullRequest
0 голосов
/ 25 мая 2010

В моем коде есть VB:

 Dim reader as idatareader = includes.SelectDepartmentID(PageID)
        While reader.Read
            Did = reader("departmentid")
            GroupingHeading = reader("heading")
            Folder = reader("folder")
            If reader("OwnBanner") Is DBNull.Value Then
                OwnBanner = String.Empty
            Else
                OwnBanner = reader("ownbanner")
            End If

Тогда в моем классе:

 Public Function SelectDepartmentID(ByVal PageID As Integer) As IDataReader
        Dim Command As SqlCommand = db.GetSqlStringCommand("sql")
        db.AddInParameter(Command, "@pageid", Data.DbType.Int32, PageID)
        Dim reader As IDataReader = db.ExecuteReader(Command)
        reader.Read()
        Return reader
    End Function

Нет ошибок, но читатель ничего не возвращает. Есть ли ошибка в моем коде?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 25 мая 2010

Попробуйте удалить

reader.Read()

строка из SelectDepartmentID.

1 голос
/ 25 мая 2010

Вы пропускаете первый ряд читателя. Удалите оператор reader.Read() в функции SelectDepartmentID непосредственно перед оператором возврата.

Любая функция, которая возвращает читателя, не должна делать предположений о том, что будет делать с ним вызывающий код, и просто возвращать его без изменений.

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