Toon posts:

[Visual Basic .NET] Recordsource.open Error?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim conString As String
        Dim rsd As New ADODB.Recordset
        Dim strSql As String
        Dim mySqlConn As New ADODB.Connection
        Dim fld As ADODB.Field
        Dim i As Integer
        conString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=10.0.0.2;PORT=3306;" _
                        & "DATABASE=test; USER=*****;PASSWORD=*****;OPTION=3;"
        mySqlConn.ConnectionString = conString
        mySqlConn.Open()
        rsd = New ADODB.Recordset
        rsd.CursorType = ADODB.CursorTypeEnum.adOpenDynamic
        rsd.ActiveConnection = mySqlConn
        rsd.LockType = ADODB.LockTypeEnum.adLockOptimistic
        rsd.Source = "SELECT * FROM files"
        rsd.Open()


Het gaat goed totdat ik kom bij de laatste regel, dan krijg ik namelijk de melding:

code:
1
2
3
4
5
An unhandled exception of type 'System.Runtime.InteropServices.COMException' 
occurred in WindowsApplication1.exe

Additional information: Arguments are of the wrong type,
 are out of acceptable range,  or are in conflict with one another.


Wat doe ik verkeerd? Ik zat zelf te denken aan een fout CursofType en/of LockType, maar ik kan het ook hiermee niet oplossen? Heb al een tijd zitten zoeken op het Internet en GoT maar kan niets vinden. Wat doe ik nu fout? Ik probeer het op (ongeveer) dezelfde manier te doen als in gewoon (ouderwets) VB. Het doel is vanuit een VB applicatie één of meedere records opvragen uit een MySql-database.

===== Oeps topictitel; vergeten de rest toe te voegen :(

[ Voor 4% gewijzigd door Verwijderd op 15-12-2005 20:26 ]


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-04 22:00
:? wil je nou in VB.NET programmeren of in Visual Basic? Want als 'oude' VB code 1 op 1 overneemt in VB.NET gaat het echt fout.

Verwijderd

Topicstarter
Nee, ik wil VB.Net programmeren en zeker niet de oude code overnemen. Ik heb deze code gemaakt omdat ik op een aantal sites had gelezen dat dit mogelijk moet zijn.

Verwijderd

Ik raad je aan om in plaats van ADO gebruik te maken van ADO.NET. Je kunt gebruik maken van de met .Net meegeleverde System.Data.Odbc.OdbcConnection, of (helemaal gemakkelijk) de ADO.NET Data Provider voor MySQL, alhoewel ik er niet helemaal zeker van ben of die ook MySQL 3.51 ondersteunt, denk het wel echter.

Met die laatste zou je code worden (voeg een reference toe naar MySql.Data.dll uit de bovenstaande download):
Boven aan de file:
Imports System.Data
Imports MySql.Data.MySqlClient

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim conString As String = "server=10.0.0.2;user id=*****; password=*****; database=test;"
Dim conn As New MySqlConnection(conString)
Try
  conn.Open()
  Dim adapter As New MySqlDataAdapter("SELECT * FROM files", conn)
  Try
    Dim ds As New DataSet
    Try
      adapter.Fill(ds, "files")
      ' Doe hier iets met de DataSet
    Finally
      ds.Dispose()
    End Try
  Finally
    adapter.Dispose()
  End Try
Finally
  conn.Close()
End Try


(Deze code gaat er vanuit dat je VB2003 gebruikt, als je VB2005 gebruikt kan je al die Try/Finally constructies vervangen door Using constructies wat het geheel iets leesbaarder maakt).

[ Voor 9% gewijzigd door Verwijderd op 16-12-2005 00:59 ]


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21-04 22:00
Verwijderd schreef op donderdag 15 december 2005 @ 23:59:
Nee, ik wil VB.Net programmeren en zeker niet de oude code overnemen. Ik heb deze code gemaakt omdat ik op een aantal sites had gelezen dat dit mogelijk moet zijn.
Ik weet niet welke website's je bezocht hebt, maar ik kan je aanraden eerst even enkele website's over .net , vb.net en ado.net te gaan lezen. Met die keyword's zoek in iig al in de betere richting, maar ook in de online MSDN kun je heel veel informatie en code sample's terug vinden. Of je koopt goed boek wat deze onderwerpen behandeld.

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Verwijderd schreef op vrijdag 16 december 2005 @ 00:57:
Ik raad je aan om in plaats van ADO gebruik te maken van ADO.NET. Je kunt gebruik maken van de met .Net meegeleverde System.Data.Odbc.OdbcConnection, of (helemaal gemakkelijk) de ADO.NET Data Provider voor MySQL, alhoewel ik er niet helemaal zeker van ben of die ook MySQL 3.51 ondersteunt, denk het wel echter.
Ja ik zou ook zeker aanraden om de ADO.NET Data Provider te gebruiken. Ik heb zelf goede ervaringen met de .NET connector weliswaar met MySQL 4.1, maar compatibiliteit met versie 3.51 moet zeker geen probleem zijn.

[ Voor 6% gewijzigd door pjonk op 16-12-2005 10:37 ]

It’s nice to be important but it’s more important to be nice

Pagina: 1