I'm moving my database from access to sqlite - however i'm having issues with converting the following:
I dont know what sqlite statements to use to replace the ADODB recordset
So far:
However i get an error
System.Runtime.InteropServices.COMException (0x800A0E78): Operation is not allowed when the object is closed.
at ADODB.RecordsetClass.Move(Int32 NumRecords, Object Start)
Can anyone point me in the right direction :confused:
Full sub:
Code:
Dim connectStr = (Strings.DBConnectstrings)
Dim strm As New ADODB.Stream
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stmt As String = New String("")
stmt = "SELECT * FROM exam WHERE [Section] = '" & section & "'"
Try
con.Open(connectStr)
' rs = con.Execute(stmt)
rs.Open(stmt, con, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic, &H1)
' con.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
So far:
Code:
Dim con As New SQLiteConnection(Strings.DBConnectstrings.ToString)
Dim rs As New ADODB.Recordset
Dim sql As String
Sql = "SELECT * FROM exam WHERE [Section] = '" & section & "'"
Dim adapter As New SQLiteDataAdapter(sql, con)
Dim dt As New DataTable("exam")
Try
adapter.Fill(dt)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Quote:
System.Runtime.InteropServices.COMException (0x800A0E78): Operation is not allowed when the object is closed.
at ADODB.RecordsetClass.Move(Int32 NumRecords, Object Start)
Full sub:
Code:
Private Sub getDbRecord(ByVal section As String)
Dim connectStr = (Strings.DBConnectstrings)
Dim strm As New ADODB.Stream
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stmt As String = New String("")
stmt = "SELECT * FROM exam WHERE [Section] = '" & section & "'"
Try
con.Open(connectStr)
' rs = con.Execute(stmt)
rs.Open(stmt, con, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic, &H1)
' con.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim i
Dim randList = getRandList(QnosEachSection)
' MsgBox(randList.Count)
For i = 0 To randList.count - 1
Dim x = randList.Item(i)
rs.Move(x)
Dim question As Question = New Question
question.section = rs.Fields().Item(1).Value
question.question = rs.Fields().Item(2).Value
question.option1 = rs.Fields().Item(3).Value
question.option2 = rs.Fields().Item(4).Value
question.option3 = rs.Fields().Item(5).Value
question.option4 = rs.Fields().Item(6).Value
question.answer = rs.Fields().Item(7).Value
'Added for regs
question.regulation = rs.Fields().Item(9).Value
'added for attachment
If rs.Fields(8).ActualSize > 0 Then
question.attachment = rs.Fields(8).Value
question.hasAttachment = True
Else
question.hasAttachment = False
End If
qList.Add(question)
' MsgBox(question.ToString)
rs.MoveFirst()
Next
End Sub