Announcement

Collapse
No announcement yet.

Unicode (kyrillisch) in Dataset / Tableadapter

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

  • Unicode (kyrillisch) in Dataset / Tableadapter

    Hallo,
    ich habe ein Dataset mit einem Tableadapter der einfach nur die Abfrage

    SELECT 'Количество'

    oder auch

    SELECT CONVERT(nvarchar(40), 'Количество')

    ausführen soll (ohne jegliche Datenbankbindung !)

    Leider kommen dabei nur ??? heraus. Hat vielleicht jemand eine Lösung,
    wie man die kyrillischen Zeichen erhalten kann ?

    Danke und viele Grüße
    Hermann

  • #2
    ausführen soll (ohne jegliche Datenbankbindung !)
    Worauf führst du dann dein SQL aus? Oder meinst du ohne konkrete Tabellenbindung? Ohne Tabelle sollten die Spracheinstellungen der jeweiligen Datenbank relevant sein und damit das Encoding auf .NET Seite regeln).

    Von was für einem RDBMS sprechen wir hier?

    Comment


    • #3
      Danke für die rasche Antwort.
      Es gibt keine Datenbank oder RDBMS. Nur ein "nacktes" Dataset mit einer DataTable und einem zugehörigen Tableadapter.
      Viele Grüße

      Comment


      • #4
        Es gibt keine Datenbank oder RDBMS. Nur ein "nacktes" Dataset mit einer DataTable und einem zugehörigen Tableadapter.
        OK wenn es keine DB gibt dann kann ich natürlich eine DataTable direkt beschreiben und so verwenden. Aber wo kommt da SQL ins Spiel und wofür ist der Tableadapter? Wenn du bisher einen Tableadapter verwendet hast wohin soll der denn das SQL schicken? Der kann aus sich selbst heraus kein SQL sondern reicht das nur weiter. Und wenn du nur eine DataTable hast wieso noch ein Dataset? Und wenn du keine DB hast wieso überhaupt ADO.Net und nicht einfach eine viel besser beherrschbare simple Klasse?

        Comment


        • #5
          Probiers mal mit einem "N" davor

          SELECT N'Количество'

          Beim MS SQL-Server ist das Teilweise nötig um zu sagen das jetzt "Nationale" Characters kommen. (eigenlich ist damit gemeint das man Unicode-Characters unabhängig von irgendwelchen Codepages haben will).

          Comment


          • #6
            Das habe ich schon verstanden. Die DataTable ist in diesem Fall eine "simple" Klasse. Es geht auch nicht um Für und Wider im Praxiseinsatz. Es ist eben eine DataTable, die (wie auch immer) mit kyrillischen Zeichen gefüllt wird und nur "????" liefert, obwohl doch eigentlich System.String als Datentyp für die "Tabellenspalte" verwendet wird.
            ....
            Habe gerade den Post von Bernhard Geyer gelesen: Volltreffer - Danke !

            Comment


            • #7
              Warum, wieso weshalb ist natürlich absolut dein Ding und dir scheint ja geholfen zu sein. Trotzdem bin ich neugierig und würde gerne Wissen wer dein jetzt dein SQL interpretiert

              Comment


              • #8
                Originally posted by Ralf Jansen View Post
                Warum, wieso weshalb ist natürlich absolut dein Ding und dir scheint ja geholfen zu sein.
                Ich Tipp mal darauf das hier die Grundimplementierung der Datasets an den MS SQL-Server angelehnt wurde und man nach und nach ein DB-Unabhängigkeit realisiert hat. Da bleibt dann gerne sowas DB-Spezialitäten übrig ....

                Comment


                • #9
                  Also um die Neugier zu stillen: Es ist schon ein recht komplexes typisiertes ADO - Dataset, welches mit einem MS-SQL Server zusammenarbeitet (und über nvarchar auch sehr gut mit Unicode funktioniert - auch kyrillisch).
                  In den T-SQL Abfragen selbst gibt es jedoch einige Stellen, an denen in einem case ... sprachabhängig länderspezifische (hart codierte) strings "eingebaut" sind, die sich eben wie beschrieben nicht korrekt ausgeben ließen. Natürlich hätte man das Problem über eigene Tabellen "erschlagen" können - aber der Neugier wegen war es schon mal von Interesse, warum das so nicht funktionierte.
                  Nochmals vielen Dank für Euere Hilfe.

                  Comment


                  • #10
                    Also um die Neugier zu stillen
                    Danke. .

                    Comment

                    Working...
                    X