Idatareaders不从数据库返回值

时间:2010-05-25 12:17:35

标签: asp.net vb.net enterprise-library datareader

在我的代码隐藏中,我有这个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 个答案:

答案 0 :(得分:2)

尝试删除

reader.Read()
来自SelectDepartmentID的

行。

答案 1 :(得分:1)

您正在跳过阅读器的第一行。在return语句之前删除reader.Read()函数中的SelectDepartmentID语句。

任何返回阅读器的函数都不应该假设调用代码将对它做什么,只是不加修改地返回它。