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
Annonceindlæg fra Barco
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
25. oktober 2005 - 14:54
#2
du ville helt undgå problemet ved at bruge parameters
25. oktober 2005 - 15:00
#3
Parameters. Kan du forklare dig lidt nærmere, jeg har nemlig ikke programmeret i så lang tid
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";
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(); }
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
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?
25. oktober 2005 - 16:26
#9
ja men du bruger allerede ADO.NET XxxxConnection + XxxxCommand + XxxxDataReader + XxxxDataAdapter + DataSet er ADO.NET
25. oktober 2005 - 16:36
#10
OdbcCommand er f.eks. ADO.NET? Eller tager jeg helt fejl?
25. oktober 2005 - 16:37
#11
Den tutorial jeg har fundet er godt nok c# og MS SQL Server. Men er det lige meget?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.