Hvad får du af fejl?
--
--
Curling - Fordi dværgkast er ulovligt
Du burder forøvrigt også bruge en StringBuilder og så appende til den.
--
--
Curling - Fordi dværgkast er ulovligt
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!!!
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
--
--
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
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.
--
--
Nu har jeg lavet mellemrum, og nu kommer der ikke nogen fejl, men den opdaterer ikke noget.
--
--
# 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. :=)
--
--
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?
--
--
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.
--
--
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.
--
--
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.