2010-07-27 5 views
1

Я использую VS 2010 для разработки сайта, который получает некоторые данные из базы данных.получить данные из базы данных в aspx

, но я просто продолжаю получать эту ошибку.

'Не задано значение для одного или нескольких требуемых параметров.'

вот мой код

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 

Спасибо за любую помощь

ответ

2

Изменить эти две линии

sql = "SELECT * FROM Table1 WHERE RoomId = @RoomId" 


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

SQL = «SELECT * FROM Table1 WHERE RoomID = - это неправильно запрос

правый запрос is 'sql = "SELECT * FROM Table1 WHERE RoomId = @RoomId'

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

+1

Почему продублировать ответ, который был размещен почти полный день назад? – TheGeekYouNeed

Смежные вопросы