【问题标题】:get data from database in aspx用aspx从数据库中获取数据
【发布时间】:2011-03-21 14:23:46
【问题描述】:

我正在使用 VS 2010 开发一个从数据库获取一些数据的网站。

但我只是不断收到此错误。

'没有为一个或多个必需参数指定值。'

这是我的代码

Public Function getSessionDetails(ByVal roomId As String) As ArrayList

Dim sql As String
    sql = "SELECT * FROM Table1 WHERE RoomId = ?"
    Dim dbComm As New OleDbCommand(sql, dbConn)

    'dbComm.Connection.Open()
    dbComm.CommandText = sql
    dbComm.Parameters.Add("RoomId", System.Data.OleDb.OleDbType.BSTR).Value = roomId
    dbConn.Open()
    'dbComm.ExecuteNonQuery()


    Dim dbRead As OleDbDataReader = dbComm.ExecuteReader() 'System.Data.CommandBehavior.CloseConnection)

    Dim arr As New ArrayList

    Try
        While dbRead.Read()
            arr.Add(New SessionDetails(dbRead.GetValue(2).ToString, dbRead.GetValue(3).ToString, dbRead.GetValue(4).ToString, dbRead.GetValue(6).ToString, _
                                       dbRead.GetValue(5).ToString, dbRead.GetValue(7).ToString, dbRead.GetValue(8).ToString))
        End While
    Catch ex As Exception

    End Try

    Try
        'sort arr by date using bubble
        For i As Integer = 1 To arr.Count - 1
            Dim sesTop As SessionDetails = arr(i)
            Dim sesBot As SessionDetails = arr(i - 1)
            Dim sesTmp As SessionDetails

            If sesBot.sessionDate < sesTop.sessionDate Then
                'swap them
                sesTmp = arr(i)
                arr(i) = arr(i - 1)
                arr(i - 1) = sesTmp
                i = 0
            ElseIf sesBot.sessionDate = sesTop.sessionDate And sesBot.StartTime < sesTop.StartTime Then
                'swap them
                sesTmp = arr(i)
                arr(i) = arr(i - 1)
                arr(i - 1) = sesTmp
                i = 0
            End If
        Next
    Catch ex As Exception

    End Try

    'Dim se As SessionDetails
    'For Each se In arr
    '    If se.sessionDate < Now Then
    '        arr.Remove(se)
    '    End If
    'Next

    dbRead.Close()
    dbConn.Close()

    Return arr
End Function

感谢您的帮助

【问题讨论】:

    标签: asp.net database visual-studio-2010


    【解决方案1】:

    sql = "SELECT * FROM Table1 WHERE RoomId = ?--这是错误的查询。

    正确的查询是 'sql = "SELECT * FROM Table1 WHERE RoomId = @RoomId'

    dbComm.Parameters.Add("@RoomId", System.Data.OleDb.OleDbType.BSTR).Value = RoomId

    【讨论】:

    • 为什么要复制几乎一整天前发布的答案?
    【解决方案2】:

    改变这两行

    sql = "SELECT * FROM Table1 WHERE RoomId = @RoomId"
    
    
    dbComm.Parameters.Add("@RoomId", System.Data.OleDb.OleDbType.BSTR).Value = roomId
    

    【讨论】:

      猜你喜欢
      • 2013-08-29
      • 2012-12-30
      • 2022-01-10
      • 1970-01-01
      • 2012-10-22
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多