Avatar billede simsen Mester
29. juli 2007 - 23:33 Der er 16 kommentarer og
1 løsning

Sætter punktum istedet for komma og fjerner danske bogstaver

Hejsa,

Er ved at opgive....Jeg aner ikke hvad der er sket, men pludselig vil min side ikke vise æ, ø og å længere.....

Et andet problem jeg har, er at den ændre kommatal hentet fra databasen til punktum istedet...... F.eks. 5,6 står i databasen, når jeg så henter med:

kundekm = Convert.ToDecimal(CustomerKm.Rows[0]["km"]);

bliver de 5,6 til 5.6

Når jeg så gemmer ned igen i databasen - fjerner den punktummet så tallet bliver til 56.......og det er jo ikke helt det korrekte tal, den skal gemme.....

Jeg har i min web.config forsøgt at indsætte følgende:

<globalization
          fileEncoding="utf-8"
          requestEncoding="utf-8"
          responseEncoding="utf-8"
          culture="da-DK"
          uiCulture="da-DK"
        />

Nogen der kan hjælpe mig - for det er altså et mega problem, den ikke viser æ, ø og å og ikke viser det korrekte tal.....

mvh
simsen :-)
Avatar billede kalp Novice
29. juli 2007 - 23:38 #1
<globalization
          fileEncoding="iso-8859-1"
          requestEncoding="iso-8859-1"
          responseEncoding="iso-8859-1"
          culture="da-DK"
          uiCulture="da-DK"
        />

prøv lige med den.. og sikrer dig også lige hvad angår æ,ø,å at det ikke er din browser indstillinger.
Avatar billede simsen Mester
29. juli 2007 - 23:39 #2
kalp

Det hjalp desværre ikke...... Mht. browser indstillinger - så har jeg ingen problemer med at læse æ, ø og å herinde f.eks.?
Avatar billede kalp Novice
29. juli 2007 - 23:47 #3
du kan benytte følgende
System.Web.HttpUtility.UrlDecode("det du vil udskrive her og som har æøå",System.Text.Encoding.Default)

men det hjælper selvfølgelig ikke hvis det drejer sig om en masse tekst:)
Avatar billede simsen Mester
29. juli 2007 - 23:48 #4
kalp

Det drejer sig om MEGET tekst.....så nej, det hjlper mig desværre ikke.....
Avatar billede simsen Mester
29. juli 2007 - 23:50 #5
Kan det på nogen være Visual Studio, der har glemt noget dansk......

Jeg har følgende (mht. mit komma der bliver til punktum)

string kundekm = Convert.ToString(CustomerKm.Rows[0]["km"]);
            kundekm.Replace(".", ",");
            KundeKm = Convert.ToDecimal(kundekm);

Når jeg tager musen (i debug mode) henover KundeKm kan jeg se, at KundeKm er 5.6 men kundekm er 5,6
Avatar billede kalp Novice
29. juli 2007 - 23:57 #6
jo det kan sagtens være at du har rørt under ASP.NET Configuration Settings

se her
http://msdn2.microsoft.com/en-us/library/ms186181.aspx

der kan man nemlig også sætte det
Avatar billede simsen Mester
30. juli 2007 - 00:23 #7
Det hjalp på mit æ, ø og å problem. Jeg har nu fået disse retur på min side....Jeg forstår dog ikke hvordan det er ændret derinde....jeg ved med sikkerhed, jeg ikke har været inde og ændre noget som helst der.....jeg var slet ikke klar over man kunne...

Det har dog ikke hjulpet på mit komma/punktum problem.

Den tager stadig KundeKm til at være 5.6 mens kundekm er lig med 5,6

Har du også en løsning til dette?
Avatar billede kalp Novice
30. juli 2007 - 00:29 #8
har du prøvet blot sådan her?
KundeKm = (decimal)CustomerKm.Rows[0]["km"];
Avatar billede simsen Mester
30. juli 2007 - 00:35 #9
Den fremkommer med exception når jeg forsøger dette:

Specified cast is not valid
Avatar billede kalp Novice
30. juli 2007 - 00:36 #10
hmm hvad med

KundeKm = CustomerKm.Rows[0]["km"] as decimal;
Avatar billede simsen Mester
30. juli 2007 - 00:39 #11
Så fremkommer den med fejl:

Error    1    The as operator must be used with a reference type ('decimal' is a value type)    C:\Inetpub\wwwroot\ANSI\Faktura\Kunder.aspx.cs    591    23    C:\...\ANSI\
Avatar billede kalp Novice
30. juli 2007 - 00:41 #12
okay.. jeg tror bare du skal ignorere om det er , eller . oppe i C# koden.
kan jeg se hvor du gemmer det? så kan vi i det mindste sørge for den gemmer det korrekt igen
Avatar billede kalp Novice
30. juli 2007 - 01:30 #13
mit forsøg ville være, at gemme din værdi via. command objektes parameters.
Avatar billede simsen Mester
30. juli 2007 - 08:39 #14
Hejsa kalp

Jeg håber du er med på sidelinien stadig.....jeg røg af nettet i nats og har ikke kunnet komme på før nu igen.....

Jeg gemmer det umiddelbart lige efter på følgende måde:

//Henter antal km fra kunden og til firmaet som gemmes på ordrerlinien
        if (api.GetCustomerKm(user_id, ref CustomerKm) == FaktureringApi.FStatus.Success)
        {
            string kundekm = Convert.ToString(CustomerKm.Rows[0]["km"]);
            kundekm.Replace(",", ".");
            KundeKm = Convert.ToDecimal(kundekm);           
        }

        //Gemmer Ordrelinie med pågældende fakturanr.
        if (api.SetNewOrderLine(Convert.ToInt32(txtNewInvoiceNo.Text), varenr, Convert.ToInt32(txtAntal.Text), PrisExMoms, KundeKm, Varenavn) == FaktureringApi.FStatus.Success)
        {

SetNewOrderLine ser ud som følgende:

//Indsæt fakturalinie
    public FStatus SetNewOrderLine(int FakturaNr, string VareNr, int Antal, decimal PrisExMoms, decimal KundeKm, string VareNavn)
    {
        FStatus status = FStatus.Failure;

        DataTable AItems = new DataTable();
        try
        {
            command.CommandText = "INSERT INTO Ordrer (FakturaNr, VareNr, Antal, PrisExMoms, KundeKm, VareNavn) VALUES (@FakturaNr, @VareNr, @Antal, @PrisExMoms, @KundeKm, @VareNavn)";
           
            command.Parameters.Clear();
            command.Parameters.Add(new OleDbParameter("@FakturaNr", FakturaNr));           
            command.Parameters.Add(new OleDbParameter("@VareNr", VareNr));
            command.Parameters.Add(new OleDbParameter("@Antal", Antal));
            command.Parameters.Add(new OleDbParameter("@PrisExMoms", PrisExMoms));
            command.Parameters.Add(new OleDbParameter("@KundeKm", KundeKm));
            command.Parameters.Add(new OleDbParameter("@VareNavn", VareNavn));

            command.ExecuteNonQuery();

            status = FStatus.Success;
        }
        catch
        { }

        return status;
    }
Avatar billede kalp Novice
30. juli 2007 - 10:03 #15
hmm.. du benytter allerede parameters.

hvis du ikke laver replace på , til . kan den så gemme korrekt?

string kundekm = Convert.ToString(CustomerKm.Rows[0]["km"]);
KundeKm = Convert.ToDecimal(kundekm);
Avatar billede simsen Mester
30. juli 2007 - 10:06 #16
kalp

Nej det kunne den ikke.....men så var det jeg kom i tanke om, jeg har engang haft problemer med datetime også, hvor der var et klogt hovede herinde, der fortalte mig, at jeg skulle lade access selv håndtere det - og bare smække (på det tidspunkt datetime) ind som en tekst streng......

Dette har jeg så også forsøgt nu med beløbet.........og det virkede - nu sætter den det korrekt ind som 5,6

Smid et svar og du får dine points.....og tak for hjælpen

mvh
simsen :-)
Avatar billede kalp Novice
30. juli 2007 - 11:09 #17
:D

men den burde ellers stadig kunne håndtere det sådan der:)
i hvertfald det som er pointen med den:)

men godt tingene blev løst;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester