Hej igen Varför är du inte konsekvent och har id som en parameter? Koden efter osv är densamma som i laggtill sub:en ovanför. Hur ska jag göra för att se hur den genererade koden ser ut? Testade med att sätta en breakpoint i vs (vilket jag aldrig gjort förut) och vad jag kunde se innehöll mina parametrar de värden som laddades in från databasen när jag kom till sidan och inte de som står i textboxarna. Finns det alltså ingen som kan se vad jag gör för fel? Eller är det en alldeles för enkel fråga för att man ska orkar bry sig? Det kan väl ändå inte vara så att ingen här har lyckats uppdatera värden i mysql via ett formulär med textboxar? Eller är det helt enkelt så att ibland funkar det inte men man vet inte varför?Uppdatera med värden från textboxar
Fick förra veckan hjälp med att lägga in poster i min mysql-databas med värden från textboxar med denna kod
<code>Dim objConn As New MySqlConnection
Dim objCmd As MySqlCommand
Sub laggtill(ByVal sender As Object, ByVal e As System.EventArgs)
objConn = New MySqlConnection("Server=localhost;User Id=magobe;Database=magobe")
objCmd = New MySqlCommand("INSERT INTO asptips (dRubrik, dTips, dLank) VALUES (?Rubrik, ?Tips, ?Lank)", objConn)
objCmd.Parameters.Add(New MySqlParameter("?Rubrik", txtRubrik.Text))
objCmd.Parameters.Add(New MySqlParameter("?Tips", txtTips.Text))
objCmd.Parameters.Add(New MySqlParameter("?Lank", txtLank.Text))
objConn.Open()
objCmd.ExecuteNonQuery()
objConn.Close()
End Sub</code>
Då trodde jag ju självklart att det är enkelt att uppdatera poster från samma textboxar på liknande sätt...
<code>Sub update(ByVal e As Object, ByVal s As EventArgs)
objConn = New MySqlConnection("Server=localhost;User Id=magobe;Database=magobe")
objCmd = New MySqlCommand("UPDATE asptips SET dRubrik=?dRubrik, dTips=?dTips, dLank=?dLank WHERE id =" & Request.QueryString("id"), objConn)
objCmd.Parameters.Add(New MySqlParameter("?dRubrik", txtTips.Text))
objCmd.Parameters.Add(New MySqlParameter("?dTips", txtTips.Text))
objCmd.Parameters.Add(New MySqlParameter("?dLank", txtLank.Text))
objConn.Open()
osv</code>
...men självklart funkar det inte. Sub:en går igenom utan felmeddelanden men inget skrivs till databasen. (Värdena kommer in i textboxarna genom en gridview med hyperlinkfield, därav Request.QueryString)
Varför började jag med asp.net när jag uppenbarligen inte har några som helst förutsättningar för att lära mig det?Sv: Uppdatera med värden från textboxar
<code>Sub update(ByVal e As Object, ByVal s As EventArgs)
objConn = New MySqlConnection("Server=localhost;User Id=magobe;Database=magobe")
objCmd = New MySqlCommand("UPDATE asptips SET dRubrik=?, dTips=?, dLank=? WHERE id =?", objConn)
objCmd.Parameters.Add(New MySqlParameter("@Rubrik", txtTips.Text))
objCmd.Parameters.Add(New MySqlParameter("@Tips", txtTips.Text))
objCmd.Parameters.Add(New MySqlParameter("@Lank", txtLank.Text))
objCmd.Parameters.Add(New MySqlParameter("@Id", Request.QueryString("id")))
objConn.Open()
osv</code>
Du måste nog typa om Request.QueryString("id") till en integer. Eftersom du inte explicit anget datatyp för dina parametrar.Sv:Uppdatera med värden från textboxar
Testade med att lägga till id som en parameter utan resultat. Den vägrar läsa de värden som finns i textboxarna. Testade också med:
<code>
objCmd.Parameters.Add("?dRubrik", MySqlDbType.VarChar, 200).Value = txtRubrik.Text
objCmd.Parameters.Add("?dTips", MySqlDbType.Blob).Value = txtTips.Text
objCmd.Parameters.Add("?dLank", MySqlDbType.VarChar, 200).Value = txtLank.Text
</code>
utan framgång.
Fältet dTips är egentligen av typen Text med det finns inte med i listan som kommer upp när man skriver MySqlDataType. i VS. Är Blob rätt alternativ i så fall?Sv: Uppdatera med värden från textboxar
Jag testade att byta till SQL Server Express med exakt samma resultat, inmatning ok, uppdatering går inte. Jag lyckades i och för sig då uppdatera via en gridview vilket jag också gått bet på med mysql.
Jag får väl testa att ställa frågan i något annat forum och se om det är någon som kan hjäpa till. Känns tungt att fastna på ruta ett i ett, i och för sig högst privat, projekt och inte veta hur man ska komma vidare.