Dat een mens zo knettergek kan worden van een zo simpel stukje code...
Voor het creëren van een aanmeldscherm wil ik een test tegen de database uitvoeren.
Daarvoor schiet ik een SELECT FROM af op een MySQL DB, en het resultaat daarvan is het ID nummer van de gebruiker
(ja, gebruikers met hetzelfde wachtwoord is een probleem, zit nog in testfase, staan maar 2 unieke wachtwoorden in tabel
)
Omdat ik continu foutmeldingen krijg over de connectie met de DB heb ik wat checks ingebouwd in de code om de status van de connectie te checken. De connectie lukt ook gewoon, zo draait op hetzelfde scherm een pulldown menu (combobox) waarvan de waarden uit de MySQL DB komen.
Onderstaand de code die ik nu gebruik:
omdat ik op dit moment aan het testen ben met EXECUTESCALAR gebruik ik max(gebruiker_id) in het SQL statement om te zorgen dat ik maar 1 record terugkrijg.
Als ik regel 11 en 12 uitschakel, dan wordt de connectie netjes opgebouwd.
Zet ik ze aan dan krijg ik deze foutmelding:
System.InvalidOperationException: Connection must be valid and open
Google laat me helaas in de steek, en kom dus geen poot verder.
Zo moeilijk moet het toch niet zijn om je variable te laden met het result van je query

Voor het creëren van een aanmeldscherm wil ik een test tegen de database uitvoeren.
Daarvoor schiet ik een SELECT FROM af op een MySQL DB, en het resultaat daarvan is het ID nummer van de gebruiker
code:
1
| select gebruiker_id from gebruikers where wachtwoord=SHA1('testest') |
(ja, gebruikers met hetzelfde wachtwoord is een probleem, zit nog in testfase, staan maar 2 unieke wachtwoorden in tabel
Omdat ik continu foutmeldingen krijg over de connectie met de DB heb ik wat checks ingebouwd in de code om de status van de connectie te checken. De connectie lukt ook gewoon, zo draait op hetzelfde scherm een pulldown menu (combobox) waarvan de waarden uit de MySQL DB komen.
Onderstaand de code die ik nu gebruik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Private Sub butlogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butlogin.Click Dim conn As MySqlConnection = New MySqlConnection Dim cmd As MySqlCommand = New MySqlCommand("select max(gebruiker_id) from gebruikers where wachtwoord=SHA1('testest')") conn.ConnectionString = serverstring Try If conn.State = ConnectionState.Closed Then conn.Open() 'Dim antwoord As Integer = cmd.ExecuteScalar MsgBox(cmd.ExecuteScalar) MsgBox("MySQLconnectie geslaagd:") Else conn.Close() MsgBox("MySQLconnectie is dicht") End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub |
omdat ik op dit moment aan het testen ben met EXECUTESCALAR gebruik ik max(gebruiker_id) in het SQL statement om te zorgen dat ik maar 1 record terugkrijg.
Als ik regel 11 en 12 uitschakel, dan wordt de connectie netjes opgebouwd.
Zet ik ze aan dan krijg ik deze foutmelding:
System.InvalidOperationException: Connection must be valid and open
Google laat me helaas in de steek, en kom dus geen poot verder.
Zo moeilijk moet het toch niet zijn om je variable te laden met het result van je query