Ska inte Parameter objektet rensa bort otrevliga tecken av typ " ' " ? Marcus, Magnus,Dataparametrar
Jag lyckas inte med detta, har jag fattat fel?
Läste artikeln om Dataparametrar i ADO.NET här, men mina fnuttar rensas Inte bort.
SQL = " INSERT INTO nodes(name,description,isFolder,parent_id,mm_userid)" & _
" VALUES(@name,@description,@folder,@parentID,@userid)"
cmd = db.getCommandByConnection(db.getConnection)
cmd.CommandText = SQL
cmd.Parameters.Add("@name", OleDbType.VarChar).Value = sName
cmd.Parameters.Add("@description", OleDbType.VarChar).Value = sDescription
cmd.Parameters.Add("@folder", OleDbType.Boolean).Value = iFolder
cmd.Parameters.Add("@parentID", OleDbType.Integer).Value = iParentID
cmd.Parameters.Add("@userid", OleDbType.Integer).Value = userid
cmd.ExecuteNonQuery()Sv: Dataparametrar
Nej det ska den inte och det är lite av vitsen. Vad den gör är att plocka bort det farliga syfte som ' kan ha mot en SQL databas och gör det helt ofarligt, t.ex om du vill att folk ska skriva in sitt för- och efternamn så med hjälp av parametrizerade frågor man kan skriva in <b>Mike O'neill</b> som namn och det är helt ofarligt.
Parametrizerade fårgor hjälper oxå till att hindra mot SQL injection eftersom de ger dig en typad SQL sträng, samt att den klipper av indata, t.ex om du har en sträng kolumn som får vara max 10 tecken så klipper den parameter värdet efter 10 tecken medans en oparametrizerad fråga inte bryr sig om längden utan du får ta hand om detta själv.
Vill du filtrera tecken så är <b>regular expressions</b> ditt kraftfullaste alternativ. Kort och gott finns det <b>ingen</b> anledning att filtrera bort ' dvs. om du inte bara vill tïllåta givna tecken att matas in.Sv: Dataparametrar
Vill ta tillfället i akt att påminna dig om att markera trådar som <b>löstna</b> när du fått ett svar som du är nöjd med. Detta hjälper andra med samma problem när de söker ett svar då de kan se att här var det en fråga om det de har problem med och att det finns en lösning till den i tråden.
Ta gärna en titt på dina tidigare inlägg (du ser dem överst på samlingssidan för forumet) och makera färdiga inlägg som lösta. Om du inte är nöjd eller inte fått ett fungerande svar till din fråga så kan du antingen välja att <b>stänga</b> del eller att aktuellisera dem igenom genom att skriva utterligare ett inlägg i tråden så att den hamnar överst i forumet igen.