Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 09:02 Der er 15 kommentarer og
2 løsninger

Få c# til snakke til en MySQL database

Er der ikke nogen der har noget simpelt kode, hvordan man får c# til og få forbindelse til MySQL. Kan ikke få min egen til og virke.

Jeg har installeret MySQL ODBC 3.51 Driver
Avatar billede -mundi- Nybegynder
25. oktober 2005 - 09:10 #1
Avatar billede Spotgun Seniormester
25. oktober 2005 - 09:11 #2
Hent MySQL's .Net Connector. Den har metoder til at tilgå databasen, samt masser af eksempler...

http://dev.mysql.com/downloads/connector/net/1.0.html
Avatar billede arne_v Ekspert
25. oktober 2005 - 09:17 #3
Jeg vil også anbefale MySQK Connector for .NET

        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();

og du har en connection
Avatar billede the_party_dog Nybegynder
25. oktober 2005 - 09:52 #4
www.connectionstrings.com

Der finder du alle muligheder til at connecte mod forskellige ting, både igennem .NET, og andre ting.
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:09 #5
Har fået den til og connecte til databasen nu:)

Men har et lille problem, når jeg tager den stump code fra MySQL's eksempel. Så opretter den en ny tabel. Det er jeg ikke interesseret i

Jeg har en tabel der hedder brugere, og et felt der hedder First_Name

Der vil jeg gerne indsætte et navn, som en slags test

//Create a sample table
      OdbcCommand MyCommand = new OdbcCommand("DROP TABLE IF EXISTS my_odbc_net",MyConnection);
      MyCommand.ExecuteNonQuery();
      MyCommand.CommandText = "CREATE TABLE my_odbc_net(id int, name varchar(20), idb bigint)";
      MyCommand.ExecuteNonQuery();

      //Insert
      MyCommand.CommandText = "INSERT INTO my_odbc_net VALUES(10,'venu', 300)";


DROP TABLE IF EXISTS my_odbc_net er jo ikke nødvendig. Eller CREATE TABLE my_odbc_net
skal heller ikke bruges

Derimod "INSERT INTO bruger (First_Name) VALUES ('Alex')" Hvordan ordner jeg lige det
Avatar billede arne_v Ekspert
25. oktober 2005 - 12:12 #6
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO my_odbc_net VALUES(10,'venu', 300)";
      MyCommand.ExecuteNonQuery();
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:13 #7
I kan bare alle 4 smide et svar
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:16 #8
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO brugere VALUES(10,'venu', 300)";
      MyCommand.ExecuteNonQuery();

Jeg får fejl ved MyCommand.ExecuteNonQuery();
An unhandled exception of type 'System.InvalidOperationException' occurred in microsoft.data.odbc.dll

Additional information: ExecuteNonQuery: Connection property has not been initialized.
Avatar billede arne_v Ekspert
25. oktober 2005 - 12:20 #9
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO brugere VALUES(10,'venu', 300)",MyConnection);
      MyCommand.ExecuteNonQuery();
Avatar billede arne_v Ekspert
25. oktober 2005 - 12:21 #10
svar fra mig

og jeg vil stadigvæk anbefale den rigtige .NET connector

simplere deployment

bedre fejlmeddelelser

formentlig bedre performance
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:27 #11
Okay jeg prøver lige og se om jeg kan få den .NET connector til og virke.

Jeg får stadig samme fejl.

Det eneste jeg skal have smidt ind er

"INSERT INTO bruger (First_Name) VALUES ('Alex')"
Avatar billede arne_v Ekspert
25. oktober 2005 - 12:30 #12
altså

hvis MyConnection har en OdbcConnection til databasen så bør

OdbcCommand MyCommand = new OdbcCommand("INSERT INTO brugere VALUES(10,'venu', 300)",MyConnection);
MyCommand.ExecuteNonQuery();

ikke kunne give

Connection property has not been initialized.
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:39 #13
Jeg skal heller ikke have sat VALUES(10,'venu', 300) ind

Jeg har en tabel der hedder brugere, der har et felt der hedder First_Name. Og der vil jeg gerne have sat et navn ind f.eks. torben. Men det gider den ikke. Jeg sagtens oprette tabel og sådan. Men det er jo ikke nødvendigt, når jeg har oprettet min tabel med tilhørende felter. Du får 60 point hvis du kan hjælpe mig:)
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:41 #14
//Create a sample table
      OdbcCommand MyCommand = new OdbcCommand("DROP TABLE IF EXISTS my_odbc_net",MyConnection);
      MyCommand.ExecuteNonQuery();
      MyCommand.CommandText = "CREATE TABLE my_odbc_net(id int, name varchar(20), idb bigint)";
      MyCommand.ExecuteNonQuery();

      //Insert
      MyCommand.CommandText = "INSERT INTO my_odbc_net VALUES(10,'venu', 300)";

Den her kode virker, men den opretter en ny tabel ved navn my_odbc_net. Men det er jeg ikke interesseret i, da jeg har oprettet en tabel og det den skal indeholde
Avatar billede arne_v Ekspert
25. oktober 2005 - 12:47 #15
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO bruger (First_Name) VALUES ('Torben')",MyConnection);
MyCommand.ExecuteNonQuery();
Avatar billede arne_v Ekspert
25. oktober 2005 - 12:48 #16
hvor du før det har har:

OdbcConnection MyConnection = new OdbcConnection("bla bla bla");
MyConnection.Open();
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 12:59 #17
Har fået det til og virke. Der var noget galt med databasen. Jeg opretter lige et spørgsmål. Så kan du lige få dine 60 point. Og rigtigt mange tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester