Hej! Hej Hej! Hej Hej! Hej Fältet du infogar data i tillåter inte att du skickar text. Du får ändra fältets typ till varchar, ntext eller liknande. Protected PageId As Integer - Innehåller idt från den anropande sidan. Om du sätter en brakpoint efter följande rad Jag tycker att det verkar som att felet ligger i vb.net-koden och inte i sql-satsen. Testa att sätta en breakpoint på första raden i proceduren och stega igenom hela proceduren för att se vilken rad felet uppstår på. Man brukar inte kunna se en stack trace om felet ligger i sql-frågan. Du har satt tråden som löst!Uppdatera dbfält med en sträng innehållande ""
Hur gör man om man har en sträng innehållande " i en sqlsats?
Ex:
strsql = "UPDATE MyTable SET MyField = '" + cstr(strVar) + "'"
där strVar alltså innehåller onda tecken (som dock ska vara med).
Har för mig att man ska kunna sätta ett escapetecken framför för att detta tecken inte ska uppfattas som avslut på strängen. Dock kommer jag inte ihåg vilket escapetecken det var och inte heller precis hur man gjorde.
Vet någon vad jag menar eller finns det någon annan väg runt?
Tack för hjälpen!
Mvh, AnnaSv: Uppdatera dbfält med en sträng innehållande ""
Citationstecken borde inte skapa några problem för dig i exemplet ovan. Där emot så kan apostrofer skapa mer problem. När det gäller apostrofer så kan du dubbla dom, dvs skriva '' (notera att det inte är ett citationstecken) så ska det inte uppstå några problem.
För att att undvika sådana här problem så rekommenderar jag att du använder dig av stored procedures istället, finns många andra fördelar också.
Med vänliga hälsningar
/Stefan Sv: Uppdatera dbfält med en sträng innehållande ""
citationstecken skapar ju visst problem då de ses som slut på strängen, vilket de inte ska vara.
T.ex. om man vill ange hela koden för en URL. T.ex.
<a href="http:\\www.pellesoft.se\">
Jag får i alla fall felmeddelande på detta.
Mvh, AnnaSv: Uppdatera dbfält med en sträng innehållande ""
Hmm... det låter lite märkligt. Jag provade nämligen exemplet du har givit och det skapade inga problem hos mig. Vad är det för felmeddelande du får exakt? Och vad för databas är det du använder dig av?
Med vänliga hälsningar
/StefanSv: Uppdatera dbfält med en sträng innehållande ""
Jag kanske har fel, tog bara förgivet när det bryter mitt i strängen den ska sätta in och börjar "prata" om type double:
"[InvalidCastException: Cast from string "Update MyTable Set Myfield = '<img src=" to type 'Double' is not valid.]"
("<img src... osv är alltså värdet av varibeln jag använder i sqlsatsen.)
Först säger den "Input string was not in a correct format".
Sen om jag läser längre ned i Stack trace så står det första meddelandet.
Var har jag klantat till det?
Skickar gärna mer kod och felmeddelanden om det behövs!
Mvh,
AnnaSv: Uppdatera dbfält med en sträng innehållande ""
Det ser ut som det skulle ha med hur du bygger upp din sträng. Någonstans slänger du in en datatyp av "Double" som skapar problemet.
Men det är lite svårt att peka på exakt vart problemet ligger, skulle behöva ser mer kod och lite mer av felmeddelandet för det.
Med vänliga hälsningar
/StefanSv: Uppdatera dbfält med en sträng innehållande ""
Sv: Uppdatera dbfält med en sträng innehållande ""
Dim strCode As String = CType(e.Item.Cells(2).FindControl("TextboxCode"), TextBox).Text
Dim strType As String = CType(e.Item.Cells(3).FindControl("TextboxType"), TextBox).Text
Dim dbconn As SqlClient.SqlConnection
Dim dbConnStr As String
Dim dr As SqlClient.SqlDataReader
Dim strsql As String
dbConnStr = "server=(local);user=MyUser;password=MyPW;Database=MyDb;"
dbconn = New SqlClient.SqlConnection(dbConnStr)
strsql = "Update MyTable Set MyField = '" + CStr(strCode) + "', MyField2 = '" + CStr(strType) + "' WHERE id = " + CInt(Id) + ""
Fältens typer
Id är en int
MyField är en varchar
MyFIeld2 är en nvarchar
Mvh, AnnaSv: Uppdatera dbfält med en sträng innehållande ""
<code> strsql = "Update MyTable Set MyField = '" + CStr(strCode) + "', MyField2 = '" + CStr(strType) + "' WHERE id = " + CInt(Id) + "" </code>
vad innehåller då exakt variabeln strsql?
Om du kopierar innehållet i variabeln och klistrar in i sql query analyzer och testar att köra. Vad får du då för felmeddelande där? (Man brukar få bättre felmeddelande i query analyzer....)Sv: Uppdatera dbfält med en sträng innehållande ""
Sv: Uppdatera dbfält med en sträng innehållande ""
Var vänlig och skriv ett inlägg i denna tråd om vad felet var och hur du löste problemet. Detta medför att andra med samma sorts problem blir hjälpta när de söker efter inlägg....