Announcement

Collapse
No announcement yet.

Probleme bei Änderung der Ländereinstellung

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

  • Probleme bei Änderung der Ländereinstellung

    Hallo,

    ich entwickle gerade an einem Projekt (ASP .NET, C#, SQL Svr. 05) auf einem System mit z. B. englischen bzw. deutschen Ländereinstellungen.

    Hierbei wird z. B. eine Zeit im Format "10/15/2008 4:22:00 PM" per DateTime.Now.Date.ToString() in eine TextBox geschrieben auf die dann ein DataBinding einer SqlDataSource läuft.

    Die SqlDataSource macht dann einen SELECT wie z. B.

    "SELECT Time FROM Test WHERE Time = CAST(@Time AS DateTime)"

    Parallel wäre auch noch möglich:

    "SELECT Time FROM Test WHERE Time = CONVERT(DateTime, @Time, 101)"

    Das alles funktioniert einwandfrei. Soviel zur Vorgeschichte. Nun zu meinem Problem:

    Publishe ich mein Projekt nun auf einen Server wo die Ländereinstellungen auf "Arabisch" stehen, bekomme ich eine SqlException, weil wohl statt z. B. PM und AM bei der Zeit, nunmal ein arabischen Zeichen verwendet wird.

    Hat jmd. eine Idee, wie ich das Problem lösen kann, ohne dass ich jetzt gleich die Ländereinstellung auf z. B. US bzw. Deutsch umstelle?

    Danke vorab für Eure Hilfe.


    Hier die SQL Exceptions wo auftreten:

    - "Conversion failed when converting datetime from character string.
    " Exception Details: System.Data.SqlClient.SqlException: Conversion failed when converting datetime from character string."

    - "Arithmetic overflow error converting expression to data type datetime.
    Exception Details: System.Data.SqlClient.SqlException: Arithmetic overflow error converting expression to data type datetime."

  • #2
    Hallo,

    wenn ich es richtig verstanden haben:

    Ich würde die Konvertierung von String zu DateTime in C# erledigen, denn dort kann auf die Globalisierung rücksicht genommen werden.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Danke erstmal für die Antwort.

      Das habe ich mir natürlich zuerst auch gedacht... wegen Internas u. weil ich ein Control von einem externen Anbieter verwende, verwende ich allerdings die SqlDateSource. Und die manuelle Parameterübergabe über DataSource.SelectParamater.Add... an die SqlDataSource bringt halt nix, weil dem externen Control geeignete Methoden fehlen, daher das Binding auf die TextBox... was ja leider nur Ärger bringt.

      Comment

      Working...
      X