Visuals Basic <-> PHP, MySQL

Status
Niet open voor verdere reacties.
Ik heb nu het volgende en hij blijft zeuren over die connectie en markeert weer dezelfde regel geel.

Code:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Try
            Dim cmd As New MySqlCommand
            conn.ChangeDatabase("database")

            cmd.CommandText = "Insert Into admin_gegevens (username) Values (?VAR1)"

            cmd.Parameters.Add(New MySqlParameter("?VAR1", TextBox1.Text))

            cmd.ExecuteNonQuery()

            cmd.Dispose()

        Catch ex As MySqlException
            MessageBox.Show("SAVE ERROR: " + ex.Message)
        End Try

        If Not conn Is Nothing Then
        Else
            MsgBox("Please connect first ...")
        End If
    End Sub

Gr. Ronald!:)
 
Indien je een veld Text1 hebt wordt de code volgende voor u:

Code:
  cmd.CommandText = "Insert Into admin_gegevens (username) Values (?VAR1)" 

    cmd.Parameters.Add(New MySqlParameter("?VAR1", Text1.Text))
    
    cmd.ExecuteNonQuery()
 
Ja dat heb ik dus nu al, maar dan nog zegt hij dat de connectie geldig en open moet zijn. En dat van die database wat ik er boven heb is dat wel goed? Misschien dat het daardoor komt.

Gr. Ronald!:)
 
Zie bijlage!!

Het is zeer slecht te lezen, maar anders kun je het hiet niet uploaden :s.

Gr. Ronald!:)
 

Bijlagen

  • Error.jpg
    Error.jpg
    88,8 KB · Weergaven: 16
Nu heb ik nog weer wat raars gevonden. Als ik op de plek van waar de database moet vanalles invul, behalve de goede naam van de database geeft hij de error. Die van SAVE ERROR. Die eronder staat. Dan wil de connectie dus wel.
Vul ik de goede naam van de database in, dan zegt ie connections must be valid and open.


Gr. Ronald!:confused:
 
Stuur je code eens op van je form (als bijlage in een zip), ZONDER je paswoord en connectie gegevens !!!!
Dan kan ik eens bekijken waar het fout gaat ....
Je hebt in een van men vorige berichten al mijn uitgebreide versie gezien van MySQL connector en die werkt perfect, dus begin ik te twijfelen aan je soort connectie die je maakt ....
:) Mvg Danny
 
Ik zal ze morgenochtend er even opzetten! Ik stuur de hele code wel op!:thumb:

Gr. Ronald!:)
 
Hier de hele code die ik gebruik:

Code:
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports MySql.Data.MySqlClient

Public Class Form1
    Inherits System.Windows.Forms.Form

    Dim conn As MySqlConnection
    Dim data As DataTable
    Dim da As MySqlDataAdapter
    Dim cb As MySqlCommandBuilder

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Not conn Is Nothing Then conn.Close()
        Dim port As UInteger = 3306
        Dim connStr As String
        connStr = String.Format("server={0}; port=3306; user id={1}; password={2}; pooling=false", server.Text, gebrnaam.Text, wachtwoord.Text)

        Try
            conn = New MySqlConnection(connStr)
            conn.Open()
            Label5.Text = "De connectie naar " & server.Text & " is gelukt!"
            If Button1.Text = "Disconnect" Then
                Button1.Text = "Connect"
            Else
                Button1.Text = "Disconnect"
            End If


        Catch ex As MySqlException
            MessageBox.Show("Error connecting to the server: " + ex.Message)
        End Try
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Try
            Dim cmd As New MySqlCommand
            conn.ChangeDatabase("test")

            cmd.CommandText = "Insert Into admin_gegevens (username) VALUES (?VAR1)"

            cmd.Parameters.Add(New MySqlParameter("?VAR1", tabel.Text))

            cmd.ExecuteNonQuery()

            cmd.Dispose()

        Catch ex As MySqlException
            MessageBox.Show("SAVE ERROR: " + ex.Message)
        End Try

    End Sub

Gr. Ronald!:)
 
Hier is je "aangepaste" code, welke het perfect doet.
Vergelijk even onze code om te zien wat er is veranderd.
Succes er mee !!!!
Mvg Danny :D

Code:
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports MySql.Data.MySqlClient

Public Class Form1

    Inherits System.Windows.Forms.Form

    Dim conn As MySqlConnection
    Dim data As DataTable
    Dim da As MySqlDataAdapter
    Dim cb As MySqlCommandBuilder
    Dim MySqlDb As String = ""

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[B]        server.Text = "myserver.com"
        gebrnaam.Text = "admin"
        wachtwoord.Text = "password"
        MySqlDb = "database"
        conn = Nothing[/B]
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If Not conn Is Nothing Then conn.Close()
        Dim port As UInteger = 3306
        Dim connStr As String
        connStr = String.Format("server={0}; [B]port=" & port & "; [/B]user id={1}; password={2}; pooling=false", server.Text, gebrnaam.Text, wachtwoord.Text)
        Try
            conn = New MySqlConnection(connStr)
            conn.Open()
[B]            conn.ChangeDatabase(MySqlDb)[/B]
            If Button1.Text = "Disconnect" Then
                Button1.Text = "Connect"
            Else
                Button1.Text = "Disconnect"
            End If
        Catch ex As MySqlException
            MessageBox.Show("Error connecting to the server: " + ex.Message)
        End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Try
            Dim cmd As New MySqlCommand
[B]            cmd.Connection = conn[/B]
            cmd.CommandText = "INSERT INTO admin_gegevens (username)  VALUES (?var1)"
            cmd.Parameters.Add(New MySqlParameter("?var1", tabel.Text))
            cmd.ExecuteNonQuery()
            cmd.Dispose()
        Catch ex As MySqlException
            MessageBox.Show("SAVE ERROR: " + ex.Message)
        End Try
End Sub

End Class
 
Laatst bewerkt:
die cmd.Connection zat er eerste niet bij:p!

Maar hij werkt prima! Hij heeft het in de tabel gezet. Hartelijk dank voor alles en nu ga ik hem verder uitbouwen!

Gr. Ronald!:thumb:
 
Had het ook gezien ...
Maar heb tevens wat andere items aangepast (staan in het vet).
Dit topic is beantwoord kan dus gesloten worden :)

Indien je een nieuw topic aanmaakt, geef dan even een seintje, daar ik niet dagelijks kom forummen :D

CU Danny :p
 
Nog 1 vraag hierover!

Hoe kun je meerder variabeles aanmaken in een SQL query. Met die ?var1 enzo. Ik wil namelijk ook dat je de tabel en kolom zelf kunt aangeven.
Heb nu dit:

Code:
            cmd.Connection = conn
            cmd.CommandText = "INSERT INTO ?var1 (?var2) VALUES (?var3)"
            cmd.Parameters.Add(New MySqlParameter("?var1", tabel.Text))
            cmd.Parameters.Add(New MySqlParameter("?var2", kolom.Text))
            cmd.Parameters.Add(New MySqlParameter("?var3", inhoud.Text))
            cmd.ExecuteNonQuery()
            cmd.Dispose()

Ik heb:
?var1 = admin_gegevens
?var2 = username
?var3 = teeest

Hij geeft nu een fout, namelijk:

SAVE ERROR: You have an error in your SQL syntax near "admin_gegevens ('username') VALUES ('teeest') at line 1

Enig idee?

Gr. Ronald!:)
 
Nu is de username bij u op het form de TextBox tabel, je kunt TextBoxen bijmaken,
Laten we in dit voorbeeld 2 TextBoxen op je form bijmaken die je: mail en adres noemt, dan wordt je code volgende:

Code:
            cmd.CommandText = "INSERT INTO admin_gegevens (username, email, adres)  VALUES (?var1, ?var2, ?var3)"
            cmd.Parameters.Add(New MySqlParameter("?var1", tabel.Text))
            cmd.Parameters.Add(New MySqlParameter("?var1", mail.Text))
            cmd.Parameters.Add(New MySqlParameter("?var1", adres.Text))
            cmd.ExecuteNonQuery()

Mijn PERSOONLIJKE manier van werken is anders, mijn TextBoxen noemen hetzelfde als de veldnamen in de database en dan krijg je volgende:

Code:
            cmd.CommandText = "INSERT INTO admin_gegevens (username, email, adres)  VALUES (?username, ?email, ?adres)"
            cmd.Parameters.Add(New MySqlParameter("?username", username.Text))
            cmd.Parameters.Add(New MySqlParameter("?email", email.Text))
            cmd.Parameters.Add(New MySqlParameter("?adres", adres.Text))
            cmd.ExecuteNonQuery()
dit geeft als voordeel dat je weet welke variabele voor welk veld zal dienen, maar da's een persoonlijke keuze :)
 
Het hele zooitje werkt nu! Bedankt.
En dan nog 1 vraag:

Hoe maak je van dit hele gebeuren een .exe bestand, zodat ik hem iemand anders kan laten testen?

Gr. Ronald!:thumb:
 
Laatst bewerkt:
Zie de bijlage ...

Build en ReBuild maakt exe bestand in uw ....\applicatie\bin\Release\
De F5 toets start een debug versie (ook een exe bestand ... ) die daarna te vinden is in ....\applicatie\bin\Debug\

Als je het ergens anders wenst te proberen heb je de exe nodig + MySql.Data.dll , die ook deze mappen staat.
Voor de rest is er weinig nodig (buiten .Net Framework 2, welke op de meeste pc's al geïnstalleerd is :) )
;) Danny
 

Bijlagen

  • Capture1.gif
    Capture1.gif
    27,5 KB · Weergaven: 25
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan