[Vb.net] Variable in mysql

Pagina: 1
Acties:

  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 29-04 12:13
Ik ben een programma aan het maken dat dingen wegschrijft naar een mysql database.
Dit programma werkt perfect op 1 ding na. Hij moet een vb.net variable wegschrijven in de database.
Ik heb het op de php manier geprobeerd om hem weg te schrijven maar bnij allaes pakt hij de string niet.

code:
1
2
MyCommand.CommandText = ("INSERT INTO page (file) VALUES($link)")
MyCommand.CommandText = ("INSERT INTO page (file) VALUES(link)")

Hierbij kan ik geen vb.net variable weg schrijven (LINK) = variabele.

Ik heb heel google afgezocht, ben wat tegen gekomen over:
code:
1
mycommand.parameters.add("?Naam", Variabele)

En als ik dan ?naam probeer weg te schrijven dmv:
code:
1
2
MyCommand.CommandText = ("INSERT INTO page (file) VALUES(?naam)")
MyCommand.CommandText = ("INSERT INTO page (file) VALUES('?naam')")

Krijg ik ook een fout, deze foutmelding is overal:

n unhandled exception of type 'System.Data.Odbc.OdbcException' occurred in system.data.dll

Weet iemand wat ik fout doe?

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je moet de documentatie denk nog een keer doorlezen over parameters. Je zou het ongeveer als volgt moeten doen
C#:
1
2
MyCommand.CommandText = "INSERT INTO page (file) VALUES( @link )";
MyCommand.Parameters.Add( "@link", link );

waar link dus je variabele is waar de waarde in zit die je wilt inserten. Maar dit kan je ongetwijfeld ook wel in de documentatie vinden.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 29-04 12:13
rwb schreef op woensdag 28 september 2005 @ 22:34:
Je moet de documentatie denk nog een keer doorlezen over parameters. Je zou het ongeveer als volgt moeten doen
C#:
1
2
MyCommand.CommandText = "INSERT INTO page (file) VALUES( @link )";
MyCommand.Parameters.Add( "@link", link );

waar link dus je variabele is waar de waarde in zit die je wilt inserten. Maar dit kan je ongetwijfeld ook wel in de documentatie vinden.
Thanks, dit heb ik geprobeerd (daarvoor ook al) Maar als ik dit doe krijg ik alleen maar Null in de database ipv de gevulde variabele

Verwijderd

DoDo schreef op woensdag 28 september 2005 @ 21:23:
...
code:
1
2
MyCommand.CommandText = ("INSERT INTO page (file) VALUES($link)")
MyCommand.CommandText = ("INSERT INTO page (file) VALUES(link)")

...
heb je al geprobeerd om gewoon een MySQL query te vormen ipv de .net way...?

code:
1
MyCommand.CommandText = String.Format("INSERT INTO {0} {1} VALUES ('{2}')", strPage, strFile, strLink)


als meerdere waardes, word het blah ... VALUES ('a', 'b', 'c')

Je begrijpt wel wat ik bedoel...

  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 29-04 12:13
Verwijderd schreef op donderdag 29 september 2005 @ 01:12:
[...]


heb je al geprobeerd om gewoon een MySQL query te vormen ipv de .net way...?

code:
1
MyCommand.CommandText = String.Format("INSERT INTO {0} {1} VALUES ('{2}')", strPage, strFile, strLink)


als meerdere waardes, word het blah ... VALUES ('a', 'b', 'c')

Je begrijpt wel wat ik bedoel...
Waar definier je dan de table waar het in moet etc?

  • whoami
  • Registratie: December 2000
  • Nu online
De @ placeholder werkt iig voor MS databases.

Ik geloof dat je voor MySQL een ? zult moeten gebruiken:

code:
1
cmdQuery.Text = "INSERT INTO tabel ( veld ) VALUES ( ? )"

Zo dus.
Ik weet niet of je namen aan je parameters kunt geven, maar je zult dus iig de parameters in de juiste volgorde aan je parameter collectie moeten toevoegen.
Krijg ik ook een fout, deze foutmelding is overal:

n unhandled exception of type 'System.Data.Odbc.OdbcException' occurred in system.data.dll

Weet iemand wat ik fout doe?
Wat zegt deze exceptie verder ? Dit is gewoon het type exceptie die gegooid werd, maar er moet toch ook een 'message' zijn in deze exceptie, die aangeeft wat er fout ging ?

[ Voor 36% gewijzigd door whoami op 29-09-2005 08:53 ]

https://fgheysels.github.io/


  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 29-04 12:13
Niet echt, ik krijg deze errror als ik het eenmaal wegsschrijf naar de database.
De error catchen wou niet lukken, want ik kan de MYSQL error niet opvangen. Enige wat ik verder nog krijg is "System Error" ? werkt btw ook niet :

Wegscrhijven doe ik met ExectuteNonQuery()

[ Voor 12% gewijzigd door DoDo op 29-09-2005 09:15 ]


  • whoami
  • Registratie: December 2000
  • Nu online
Die verdere informatie kan je gewoon wel krijgen; en iedere exceptie kan je opvangen.
Als je direct de System.Exception catched, dan worden all excepties opgevangen. Zet eens dit in je catch blok:
code:
1
2
3
4
catch( Exception ex )
{
    System.Diagnostics.Debug.WriteLine ( ex.Message );
}

https://fgheysels.github.io/


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
idd zul je in mysql geen @ parameters moeten gebruiken, maar ?. Ook is het belangrijk dat je de parameters in de goede volgorde toevoegt zoals whoami al zegt. Het wordt dan ongeveer zoiets
C#:
1
2
MyCommand.CommandText = "INSERT INTO page (file) VALUES( ? )";
MyCommand.Parameters.Add( "?link", link );


Maar het lijkt me dat er in de documentatie van je MySql connector ook wel een voorbeeldje staat.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 29-04 12:13
rwb schreef op donderdag 29 september 2005 @ 09:13:
idd zul je in mysql geen @ parameters moeten gebruiken, maar ?. Ook is het belangrijk dat je de parameters in de goede volgorde toevoegt zoals whoami al zegt. Het wordt dan ongeveer zoiets
C#:
1
2
MyCommand.CommandText = "INSERT INTO page (file) VALUES( ? )";
MyCommand.Parameters.Add( "?link", link );


Maar het lijkt me dat er in de documentatie van je MySql connector ook wel een voorbeeldje staat.
[blijdschapstext]
[

[ Voor 44% gewijzigd door DoDo op 29-09-2005 23:02 ]

Pagina: 1