Avatar billede lisby Nybegynder
08. januar 2004 - 23:07 Der er 14 kommentarer og
2 løsninger

Apostrof i streng til database

Hej.

Jeg programmerer i VB.NET og har lavet en ASP.NET hjemmeside med et debatforum.

Jeg har det problem, at man ikke kan lave et indlæg med en apostrof ('), da den opdattes som en del af syntaksen for SQL-strengen.

Det skal være muligt at lave både enkelt- (') og dobbelt-
apostroffer(") i sit indlæg.

Er der nogen som har løsningen på dette problem?
Avatar billede squashguy Nybegynder
08. januar 2004 - 23:09 #1
lav en replace, og erstat alle ' med to stks

str = replace(str, "'", "''")
Avatar billede Slettet bruger
08. januar 2004 - 23:09 #2
Erstat ' med '' i din streng.
Avatar billede jaffafo Nybegynder
09. januar 2004 - 10:34 #3
jamen brugeren skal jo kunne taste både enkelt og dobbeltgnyffer...  så hjælper det vel ikke at erstatte en enkelt med en dobbelt..
Avatar billede squashguy Nybegynder
09. januar 2004 - 10:36 #4
Det er heller ikke en dobbelt. Der er to stks af '

De dobbelte giver ingen problemer.
Avatar billede burningice Nybegynder
09. januar 2004 - 10:36 #5
joda... for et dobbelt bliver jo så erstattet med fire apostroffer.
Avatar billede squashguy Nybegynder
09. januar 2004 - 10:38 #6
Nææ.. Tag denne streng:

Jeg er' en test " fordi jeg er sej

bliver til

Jeg er'' en test " fordi jeg er sej


(copy/paste den ind i notepad, og du kan tydeligt se at '' ikke er en dobbelt, men 2 apostroffer
Avatar billede squashguy Nybegynder
09. januar 2004 - 10:39 #7
"gåseøjnene" rører du slet ikke ved
Avatar billede burningice Nybegynder
09. januar 2004 - 10:43 #8
squashguy>> det var ikke til dig jeg skrev mit indlæg, men til lisby
Avatar billede squashguy Nybegynder
09. januar 2004 - 10:54 #9
jeg sover også lidt, læste faktisk både indlægget fra jaffafo og dig som værende fra spørger :)
Avatar billede repsak Nybegynder
09. januar 2004 - 12:15 #10
jeg pjejer at bruge
content.Text.Replace("\'","&#39")
Avatar billede repsak Nybegynder
09. januar 2004 - 12:16 #11
kan ikke huske koden for " men det skulle være til at slå op :-)
Avatar billede jaffafo Nybegynder
09. januar 2004 - 18:59 #12
Squashguy:  Ja jeg svarede, men fordi jeg også ville se svaret.. :) undskyld for forvirringen...

Repsak:  er Replace("\","%#39") ikke nok?..  hvad er det der Content.text for?
Avatar billede roger Nybegynder
09. januar 2004 - 19:35 #13
Brug de allerede implementerede db parametre.

dinCommand.Parameters.Add("@Mintext","jeg' er' osv...");

så når du indsætter laver f.eks. INSERT INTO table (minColumn) VALUES (@mintext)

Det ville være fuldstændig tåbeligt at benytte ovenstående eksempler med at replace osv.
Avatar billede jaffafo Nybegynder
09. januar 2004 - 23:55 #14
Roger:

det lyder ret interessant...  hvordan virker det? har du evt. et link til noget læsestof?
Avatar billede arnejan Nybegynder
13. januar 2004 - 03:10 #15
Hver lidt forsigtig med det du, der er jo netop en ting som dette der kan give folk adgang til f.eks. at slette hele Databasen. Hvis du erstatter pling med to pling i træk og submiter, bliver det erstattet tilbage når du læser fra databasen.

Det er vigtigt at du altid husker at gøre det.
Avatar billede roger Nybegynder
15. januar 2004 - 05:29 #16
Hvem var det til arnejan ? Hvis det var til mig vil jeg gerne have den uddybet lidt :)
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