Announcement

Collapse
No announcement yet.

Der Punkt wird zum Komma nach dem IIS :-(

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Der Punkt wird zum Komma nach dem IIS :-(

    Hallo liebe .NET-Gemeinde.

    Folgendes Problem lässt mich verzeifeln.

    Ich habe in Visual Studio 2005 mit VB.Net eine Anwendung geschrieben, welche nichts anderes macht als an verschiedene Echtzeitdatenbanken reelle Zahlen zu senden. Da diese aus Amerika kommen, ist der Punkt als Trennzeichen für die Zehntel nötig. Sendet man ein Komma als Trennzeichen wird dieses als hunderter Trennzeichen interpretiert. Bsp.: Ich muss 10.5 senden wenn ich diese Zahl so in einer der Datenbanken haben möchte. Sende ich 10,5 steht dann in der Datenbank 105.

    Also clever wie ich war, habe ich meinen PC auf amerikanische Spracheinstellung gestellt und habe brav die Anwendung entwickelt und getestet. Alles mit Visual Studio 2005 und den zugehörigen Developmentserver. Nun habe ich Windows Server 2003 mit IIS6.0 eingerichtet. (anderer Rechner) Die Spracheinstellung habe ich ebenfalls auf amerikanisch gesetzt. Das Programm nun da abgelegt und von meinem Explorer 6.0 aufgerufen. Alles geht auf den ersten Blick.

    Schicke ich ein deutsches Komma (,) vom Client, erkennt dies das Programm und bricht ab. Sende ich den Punkt wie nötig, führt die Webanwendung via SQL (UPDATE) den Befehl aus. Jedoch wenn ich in die Datenbanken hineinschaue, wurde dieser Punkt als deutsches Komma behandelt.

    Ich überprüfe explizit ob ein Punkt in der Webanwendung ankommt, der Windowsserver ist genauso wie mein PC konfiguriert und diese Fehlerhafte Erscheinung tritt auf allen der Echtzeitdatenbanksysteme auf. Diese sind jedoch von unterschiedlichen Herstellern. Somit schließe ich aus das es an den Datenbanksystemen liegt und es kann auch nicht an dem Weg zwischen Client und Webanwendung liegen. Der Umkehrschluss ist, es müsste zwischen der Programmausführung des Statements mit dem Datareader und den Echtzeitdatenbanken liegen. Ich habe auch zwischen OLEDB und ODBC getestet, bei beiden das gleiche negative Ergebnis.

    Nun meine Fragen: Hat der IIS eine eigene Möglichkeit der Spracheinstellung, welche ich nicht kenne oder muss in irgendeiner anderen Config-Datei etwas umgestellt werden? Oder hat jemand eine andere Idee warum es mit dem IIS falsch gesendet / interpretiert wird?


    Vielen Dank für eure zahlreichen Ideen und Vorschläge, Matthias

  • #2
    Hallo nocheinmal, ich habe mit Freunden den ganzen Tag getüftelt und getestet.
    Das Ergebnis ist, dass der IIS das deutsche Komma trotz amerikanischer Einstellungen als Zehnteltrennzeichen verwendet.
    Sicherlich könnte ich nach allen Rechenoperationen mit der Replace Methode das Komma durch den Punkt ersetzen, jedoch ist das nicht die feine Art. Es muss doch einen Grund in der Konfiguration des IIS bzw Windows 2003 geben?

    Gruß Matthias

    Comment


    • #3
      Da diese aus Amerika kommen, ist der Punkt als Trennzeichen für die Zehntel nötig. Sendet man ein Komma als Trennzeichen wird dieses als hunderter Trennzeichen interpretiert. Bsp.: Ich muss 10.5 senden wenn ich diese Zahl so in einer der Datenbanken haben möchte. Sende ich 10,5 steht dann in der Datenbank 105.

      Der . als Dezimaltrennzeichen ist Standard in SQL und hat nichts mit Ländereinstellungen etc. zu tun. Wieso sendest du überhaupt einen String? Du hast eine Zahl benutze also SQL Parameter für deine Werte und schieb diese auch als Zahl da rein dann hast du keine Probleme mit der Trennzeicheninterpretation.


      Zu den Ländereinstellungen noch eine Vermutung(bin kein IIS Fachmann). Welche Einstellung hat den der benutzte Browser? Der Webserver könnte die clientseitigen Einstellungen berücksichtigen.

      Comment


      • #4
        Guten Morgen und vielen Dank für die Antwort.

        Originally posted by Ralf Jansen View Post
        Der . als Dezimaltrennzeichen ist Standard in SQL und hat nichts mit Ländereinstellungen etc. zu tun. Wieso sendest du überhaupt einen String?


        Zu den Ländereinstellungen noch eine Vermutung(bin kein IIS Fachmann). Welche Einstellung hat den der benutzte Browser? Der Webserver könnte die clientseitigen Einstellungen berücksichtigen.
        Wenn ich ein SQL Statement formuliere ist es ein einfacher String, welchen ich dem Data-Reader übergebe. (Ich bin noch neu in dieser Art der Programmiereung)

        Das eigentliche Problem habe ich gelöst, indem ich in wer web.config der Anwendung culture = en-US gesetzt habe. Warum die amerikanischen Einstellungen von Windows Server 2003 das Komma als Trennzeichen nehmen weis ich trotzdem nicht.

        Aber vielen Dank noch einmal, Matthias

        Comment

        Working...
        X