Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

C# - UPDATE mysql.

Af Gigabruger UnoLd | 20-04-2007 09:58 | 1215 visninger | 12 svar, hop til seneste
Jeg har problemer med at på UPDATE til at virke i min database... Kode: sqlstr = " UPDATE filmdb"; sqlstr += "SET Title ='"; sqlstr += title; sqlstr += "', Director ='"; sqlstr += director; sqlstr += "', Genre = '"; sqlstr += genre; sqlstr += "', Actors = '"; sqlstr += actors; sqlstr += "', Year = '"; sqlstr += year; sqlstr += "', About = '"; sqlstr += about; sqlstr += "'WHERE id ='"; sqlstr += arrid[listBox1.SelectedIndex].ToString(); sqlstr += "'"; sqlnonread(sqlstr);
--
#1
Basil
Semibruger
20-04-2007 10:07

Rapporter til Admin
Hvad får du af fejl? --
--
Curling - Fordi dværgkast er ulovligt
#2
Basil
Semibruger
20-04-2007 10:13

Rapporter til Admin
Du burder forøvrigt også bruge en StringBuilder og så appende til den. --
--
Curling - Fordi dværgkast er ulovligt
#3
Gr-FreeKill
Monsterbruger
20-04-2007 10:13

Rapporter til Admin
Du skal nok ændre dette: sqlstr = " UPDATE filmdb"; sqlstr += "SET Title ='"; sqlstr += title; sqlstr += "', Director ='"; Til dette: sqlstr = " UPDATE filmdb ";
--
This is a quantum car: I don't know where i am, but im going really fast!!!
#4
UnoLd
Gigabruger
20-04-2007 10:17

Rapporter til Admin
jeg får denne fejl: ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.21-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='3', Director ='Mikael Madsen', Genre = 'Thriller', Actors = 'Uma Thurman',' at line 1 --
--
#5
Basil
Semibruger
20-04-2007 10:25

Rapporter til Admin
Enig.. lav evt et breakpoint og så paste din rå sql sætning herind.. så er det nemmere at gennemskue fejlen --
--
Curling - Fordi dværgkast er ulovligt
#6
Enolc
Maxibruger
20-04-2007 10:30

Rapporter til Admin
Du skal ikke gøre sådan. Parametriser din SQL i stedet. Dvs.: sqlstr = "UPDATE filmdb SET Title =@title, Director =@director ... WHERE id = @id" og så bruge noget a la: dinsqlcommand.parameters.addvalue("@title", 'Whatever'); ... Ellers åbner du op for sql injection. --
--
#7
UnoLd
Gigabruger
20-04-2007 10:32

Rapporter til Admin
Nu har jeg lavet mellemrum, og nu kommer der ikke nogen fejl, men den opdaterer ikke noget. --
--
#8
UnoLd
Gigabruger
20-04-2007 10:38

Rapporter til Admin
# 6 Ehm, kan du skære det en lille smule mere ud i pap ? Sorry, men jeg er ret ny til sql, så det er lidt svært. :=) --
--
#9
UnoLd
Gigabruger
20-04-2007 10:49

Rapporter til Admin
6# Det første: sqlstr = "UPDATE filmdb SET Title =@title, Director =@director ... WHERE id = @id" Dvs, at man skal skrive det hele i én linje ikk? Det næste kan jeg ikke helt gennemskue... Og hvad vil det sige at åbne sql injection? --
--
#10
Enolc
Maxibruger
20-04-2007 10:52

Rapporter til Admin
hm.. nu kan jeg se du kører med mysql, ved ikke om du bruger de connectors de har liggende på deres side eller hvordan. Jeg mener de er rimelig lig Sqlconnection osv. using (SqlConnection myCon = new SqlConnection(connectionString)) { myCon.Open(); using (SqlCommand myCmd = new SqlCommand("UPDATE ... SET Title = @title, ... WHERE id=@id ...", myCon)) { myCmd.Parameters.AddWithValue("@title",'titlen'); myCmd.Parameters.AddWithValue("@id", arr[..]); } } sådan ca. --
--
#11
Enolc
Maxibruger
20-04-2007 10:54

Rapporter til Admin
det betyder at hvis du har eg. sqlstr = " UPDATE filmdb"; sqlstr += "SET Title ='"; sqlstr += title; ... og title har værdien [' --] uden [] så vil din sqlstr total set komme til at se ud som "UPDATE filmdb SET Title = '' -- ..." dvs. alt efter -- bliver set som kommentarer og du for slettet alle dine titler. Simplet eksemple, man kan lave mange "sjove" ting med det. --
--
#12
ice
Gæst
20-04-2007 11:14

Rapporter til Admin
en anden gang, er det nemmere at sætte et breakpoint, og checke hva sql query den laver, og så checke i sql om den virker, da det normalt skaber problemerne
--
Gæstebruger, opret dit eget login og få din egen signatur.

Opret svar til indlægget: C# - UPDATE mysql.

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning