Hej! Hejsan, >lagrad procedur Jag skulle ha varit tydligare. Hej!Insert-sats innehållande ett javascript
Jag har en sida som visar annonser.
För att på ett enkelt sätt kunna administrera annonserna på sidan ska man klistra in koden för annonsen i ett fält på adminsidan.
Detta funkar kalas om det är en annons i form av en vanlig <img...>-tagg men om det är ett helt javascript blir det värre, det klarar inte nuvarande uppbyggnad av sqlsatsen.
Ex på javascriptet:
<script language="javascript">
var uri = 'http://impse.tradedoubler.com/imp/iframe/117284/997716?' + new String (Math.random()).substring (2, 11);
document.write('<iframe src="'+uri +'" width="140" height="350" frameborder="0" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>');
</script>
Detta resulterar i felmeddelandet:
Syntax error (missing operator) in query expression ''5, Syntax error (missing operator) in query expression ''<script language="javascript">var uri = 'http://impse.tradedoubler.com/imp/iframe/739978/997716?' + new String (Math.random()).substring (2, 11);</script>''.''
Sqlsatsen blir
INSERT INTO Ads (Code, AdType, pId) VALUES ('<script language="javascript"> var uri = 'http://impse.tradedoubler.com/imp/iframe/117284/997716?' + new String (Math.random()).substring (2, 11); document.write('<iframe src="'+uri +'" width="140" height="350" frameborder="0" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>'); </script>', 'Right', 4)
Jag ser ju också var problemet är men vet inte hur jag ska hantera det då jag inte kan kräva av användaren att de ska göra annat än enbart klipp och klista annonskoden.
Några tips??
Stort tack! MartinSv: Insert-sats innehållande ett javascript
Det jag ser direkt är att det finns ' i strängen, och om jag förstår dig rätt så är det detta som är felet. Om jag inte minns fel så tar en lagrad procedur hand om detta problem, utan att du själv behöver kontrollera strängen efter felaktiga tecken (frågan är ju inte dynamiskt uppbyggd då, utan det är klart att det är en sträng det handlar om, och kan inte vara något annat).
Du kan också byta ut alla ' till '' (dvs två stycken). Detta kommer att bli rätt.Sv: Insert-sats innehållande ett javascript
Fel ;)
Du måste använda parametriserade frågor ;)
command.CommandText = "Insert into apa(text) values(@min_text)";
command.Parameters.Add(hur, man, nu, skriver) //Här ska "min_text", "min_sträng" in på något sätt; kolla hjälpen för Command-objektenSv: Insert-sats innehållande ett javascript
När man använder lagrade procedurer så använder man sig av parametriserade frågor (ibland), men för att lösa problemet så behövs ej lagrade procedurer (alla databashanterare stödjer ju heller inte lagrade procedurer).
Här är en länk som använder lagrade procedurer och parametriserade frågor:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet09102002.asp
Sedan ska vi icke förglömma den fördel det är att använda lagrade procedurer, men det handlade ju heller inte frågan om.Sv: Insert-sats innehållande ett javascript
Löste det på enklast möjliga sätt nu dvs att jag körde en replace på ' och bytte ut mot ''.
Tack - den funkar!