webForumDet fria alternativet

å, ä och ö försvinner??

.NET

5 svar · 423 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Hej alla!

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>
Medlem sedan dec. 19996 721 inlägg
#2

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>
Medlem sedan juli 20041 183 inlägg
#3

Hur sätter man ResponseEncoding/RequestEncoding i web.config filen??

Förresten så fungerar det inte med RequestEncoding.

Felmeddelande
The 'RequestEncoding' attribute is not supported by the 'page' directive.

Medlem sedan sep. 20011 914 inlägg
#4
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <system.web>
    <globalization 
            requestEncoding="iso-8859-1" 
            responseEncoding="iso-8859-1" />
   </system.web>
</configuration>
Medlem sedan juli 20041 183 inlägg
#5

tack, jag lyckades till och med hitta info på MSDN om detta :)

<globalization
	fileEncoding="iso-8859-1"
	requestEncoding="iso-8859-1"
	responseEncoding="iso-8859-1"
	culture="sv-SE"
/>
Medlem sedan dec. 19996 721 inlägg
#6

lilja skrev:

The 'RequestEncoding' attribute is not supported by the 'page' directive.

Där ser man. Rimligt, om man tänker efter... :)

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)