När jag sparar till en databas så försvinner mina å, ä och ö. Någon som har en förklaring till varför och hur man skall undvika problemet??
Såhär ser min databaskoppling ut till min Access-databas...
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="iso-8859-1" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDB" %>
<script runat="server">
'----- Skapar ett nytt inlägg i databasen
Sub OnBtnSendClicked (s As Object, e As EventArgs)
'----- Skapar en ConnectionString
Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"
'----- Skapar en SQL-fråga
Dim MySQL as string = "INSERT INTO Guestbook (GName, GePost, GHomepage, GComment, GDate) VALUES ('" & txtName.Text & "','" & txtEMail.Text & "','" & txtHomepage.Text & "','" & txtComment.Text & "',#" & rightNow & "#)"
'-----
Dim MyConn as New OleDBConnection (strConn)
Dim cmd as New OleDBCommand (MySQL, MyConn)
MyConn.Open ()
cmd.ExecuteNonQuery ()
MyConn.Close ()
end sub
</script>
Sätt RequestEncoding (gör det gärna i web.config, om det gäller hela sajten). Dessutom bör du (snarare måste!) alltid utnyttja parametriserade frågor, för att bl.a. slippa SQL Injection helt. Nedanstående kan kräva lite modifieringar, men du förstår nog principen.
<%@ Page Language="VB" ContentType="text/html" RequestEncoding="iso-8859-1" ResponseEncoding="iso-8859-1" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDB" %>
<script runat="server">
'----- Skapar ett nytt inlägg i databasen
Sub OnBtnSendClicked (s As Object, e As EventArgs)
'----- Skapar en ConnectionString
Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"
'----- Skapar en SQL-fråga
Dim MySQL as string = "INSERT INTO Guestbook (GName, GePost, GHomepage, GComment, GDate) VALUES (?,?,?,?,now())"
'-----
Dim MyConn as New OleDBConnection (strConn)
Dim cmd as New OleDBCommand (MySQL, MyConn)
cmd.Parameters.Add("@Name",OldDbType.VarChar,50).Value=txtName.Text
cmd.Parameters.Add("@EMail",OldDbType.VarChar,50).Value=txtEMail.Text
cmd.Parameters.Add("@Homepage",OldDbType.VarChar,50).Value=txtHomepage.Text
cmd.Parameters.Add("@Comment",OldDbType.VarChar,50).Value=txtComment.Text
MyConn.Open ()
cmd.ExecuteNonQuery ()
MyConn.Close ()
end sub
</script>