Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 14:50 Der er 11 kommentarer og
1 løsning

Indsætte i flere felter i MySQL

Ja nu har jeg altså problemer igen...

Jeg skal have puttet nogle strenge ind i nogle felter i en MySQL database.

//Connect to MySQL using MyODBC
            OdbcConnection MyConnection = new OdbcConnection(MyConString);
            MyConnection.Open();
           
            OdbcCommand MyCommand = new OdbcCommand("INSERT INTO bruger (First_Name, Last_Name, Adresse, Postnr) VALUES ('" + this.txtBox_Fornavn.Text + "', '" + this.txtBox_Efternavn.Text + "', '" + this.txtBox_Adresse.Text + "', '" + this.txtBox_Postnr.Text + "')",MyConnection);
            MyCommand.ExecuteNonQuery();

Sådan ser min kode ud nu. Men kan jeg ikke få dem sat op på en linje, så jeg sætter en streng ind af gangen?

Altså så jeg sætter "INSERT INTO bruger (First_Name) VALUES('" + this.txtBox_Fornavn + "');

Altså en ting af gangen, så det bliver nemmere og overskue
Avatar billede arne_v Ekspert
25. oktober 2005 - 14:53 #1
kan du ikke

1 INSERT = 1 række i databasen

men C# er ikke linie orienteret så:

         
OdbcCommand MyCommand = new OdbcCommand("INSERT INTO " +
                                        bruger (First_Name, Last_Name, Adresse, Postnr) " +
                                        VALUES ('" + this.txtBox_Fornavn.Text + "', '" +
                                                      this.txtBox_Efternavn.Text + "', '" +
                                                      this.txtBox_Adresse.Text + "', '" +
                                                      this.txtBox_Postnr.Text + "')",
                                        MyConnection);
MyCommand.ExecuteNonQuery();

eller hvordan du nu synes at det er pænest
Avatar billede arne_v Ekspert
25. oktober 2005 - 14:54 #2
du ville helt undgå problemet ved at bruge parameters
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 15:00 #3
Parameters. Kan du forklare dig lidt nærmere, jeg har nemlig ikke programmeret i så lang tid
Avatar billede arne_v Ekspert
25. oktober 2005 - 15:08 #4
simpelt eksempel (med MySQL Connector for .NET ikke med ODBC):

        MySqlCommand ins = new MySqlCommand("INSERT INTO temptest VALUES (?id)", con);
        ins.Parameters.Add("?id", MySqlDbType.VarChar, 20);
        ins.Parameters["?id"].Value = "Dette er en test";
Avatar billede arne_v Ekspert
25. oktober 2005 - 15:08 #5
andet eksempel:

        MySqlCommand ins = new MySqlCommand("INSERT INTO pics VALUES (@id, @pic)", con);
        ins.Parameters.Add("@id", MySqlDbType.Int);
        ins.Parameters.Add("@pic", MySqlDbType.MediumBlob);
        for(int i = 0; i < npics; i++)
        {
            ins.Parameters["@id"].Value = i;
            byte[] data = new Byte[picsize];
            for(int j = 0; j < picsize; j++)
            {
                data[j] = (byte)((i + j) % 256);
            }
            ins.Parameters["@pic"].Value = data;
            ins.ExecuteNonQuery();
        }
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 15:12 #6
Jeg tror jeg prøver den MySQL Connector i stedet. En det en der skal installeres separat, eller er det en klasse i .net?

Dit sidste eksempel er det den bedste måde og gøre det på?

Smid et svar, nu har jeg da noget og hygge mig lidt med
Avatar billede arne_v Ekspert
25. oktober 2005 - 15:15 #7
den hentes her:

http://dev.mysql.com/downloads/connector/net/1.0.html

til seriøs brug bør du bruge parameters

og svar
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 16:24 #8
Der står at det er en driver til ADO.NET. Jeg har fundet en tutorial til ADO.NET til c#, kan jeg så bare følge den og så regne med det virker?
Avatar billede arne_v Ekspert
25. oktober 2005 - 16:26 #9
ja

men du bruger allerede ADO.NET

XxxxConnection + XxxxCommand + XxxxDataReader + XxxxDataAdapter + DataSet er ADO.NET
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 16:36 #10
OdbcCommand er f.eks. ADO.NET?

Eller tager jeg helt fejl?
Avatar billede alex_sleiborg Nybegynder
25. oktober 2005 - 16:37 #11
Den tutorial jeg har fundet er godt nok c# og MS SQL Server. Men er det lige meget?
Avatar billede arne_v Ekspert
25. oktober 2005 - 16:39 #12
OdbcCommand er også ADO.NET

Xxxx = Odbc for ODBC
Xxxx = OleDb for OLE DB
Xxxx = Sql for SQLServer
Xxxx = MySql for MySQL
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