none
Datenbank Führende nullen im DGV nicht anzeigen RRS feed

  • Frage

  • Hallo Liebe Leute

    Aktuelle Situation:
    ich hole mit Daten aus einer Oracle DB, eine davon ist wie so oft die Artikelnummer "0000123456789".

    Fragen:
    ist es möglich im command string per SQL Statement die führenden nullen zu entfernen/auszublenden.
    oder hilf nur eine foreach schleife.

    mein Freund Google hat mir da nicht wirklich weitergeholfen.

    Danke für antworten.
    LG

    Loki

    Mittwoch, 19. August 2015 06:21

Antworten

  • Hi,
    VARCHAR2 speichert Texte. Wenn Du den Text numerisch haben willst, musst Du konvertieren. Die Konvertierung im Datenbankserver ist nicht optimal und nur mit Prozeduren sinnvoll. Clientseitig kann man im Datenobjekt mappen. Je nach genutztem Datenmodell bieten sich da unterschiedliche Methoden. Wenn Du ein typisiertes DataSet nutzt, kannst Du mit einer partiellen Klasse zum Datenobjekt eine weitere Eigenschaft bereitstellen, die Du im Programm nutzt und die im Getter und Setter die Konvertierung durchführt.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert Loki_1984 Mittwoch, 19. August 2015 12:37
    Mittwoch, 19. August 2015 07:20

Alle Antworten

  • Hallo,

    das SQL hängt in manchen Fällen stark davon ab, welche Datenbank man verwendet. Ich kenne mich dahingehend leider überhaupt nicht mir Orcale aus. Jedoch fand ich den Beitrag T-SQL: Remove Leading and Trailing Zeros der sicher auch für eine Oracle DB eine passende Lösung enthält.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Mittwoch, 19. August 2015 06:39
    Moderator
  • Hi,
    wenn die Artikelnummer numerisch ist, dann wird auch auf einen numerischen Typ gemappt und führende Nullen werden automatisch unterdrückt. Wenn das Feld jedoch alphanumerisch ist, ist zu erwarten, dass die Textpositionen, wo Nullen stehen, auch mit Buchstaben belegt werden können. Und da ist die Frage, warum das unterdrückt werden soll.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Mittwoch, 19. August 2015 06:44
  • Hallo again

    Ich muss leider mit dem arbeiten was ich bekomme.

    Der Datentypname ist VARCHAR2. Die Auftragsnummer besteht nur aus nummern(wird sich vorraussichtlich auch nicht ändern).
    Nochmal die frage:
    Ist es möglich im OraclecommandText die führenden Nullen in der Spalte Auftragsnummer so auszulesen das ich dan im DGV die nullen nicht angezeigt werden. Ist es nur Möglich erst auszulesen dan im DGV die nullen zu "löschen".

    @Tom
    Danke für den Link, den hab ich schon durchgearbeitet. Dieser Bringt bei mir aber eine Exception(unbekannter ausdruck)

    ein kleiner code schnippsel würde mir auch sehr helfen.

    Mein commandstring:

    (" select MATNR, AUFNR, OFMNG , FSAVD, APL_ANFPLATZ, APL_ANFDATUM, STAPLER_NAME, STA_OKDATUM, STA_LIEFERDATUM, APL_ABHOLDATUM  from ZDATA where rownum < " + Rowcontrol + " and STATS='GREEN' and ARBID='" + OraVerbindung.Arbeitsplatz + "'and MEINH='" + OraVerbindung.Gruppe + "' and APL_ABHOLDATUM IS NULL and (APL_ANFDATUM IS NULL or STA_LIEFERDATUM IS NOT NULL) order by STA_LIEFERDATUM, FSAVD ASC", OraVerbindung._conn);
    

    Der Fehlerbehaftete commandstring:

    (" select MATNR, SUBSTRING(AUFNR ,PATINDEX('%[^0]%',AUFNR), LEN(AUFNR) + 1 - PATINDEX('%[^0]%',AUFNR)
    , OFMNG , FSAVD, APL_ANFPLATZ, APL_ANFDATUM, STAPLER_NAME, STA_OKDATUM, STA_LIEFERDATUM, APL_ABHOLDATUM  from ZDATA where rownum < " + Rowcontrol + " and STATS='GREEN' and ARBID='" + OraVerbindung.Arbeitsplatz + "'and MEINH='" + OraVerbindung.Gruppe + "' and APL_ABHOLDATUM IS NULL and (APL_ANFDATUM IS NULL or STA_LIEFERDATUM IS NOT NULL) order by STA_LIEFERDATUM, FSAVD ASC", OraVerbindung._conn);
    

    Sorry für die Wurscht.

    Als kleine ausrede habe ich dass ich schon seit 27 Stunden am arbieten bin *gg*
    Also seit bitte Gnädig.

    LG
    Loki

    Mittwoch, 19. August 2015 07:13
  • Hi,
    VARCHAR2 speichert Texte. Wenn Du den Text numerisch haben willst, musst Du konvertieren. Die Konvertierung im Datenbankserver ist nicht optimal und nur mit Prozeduren sinnvoll. Clientseitig kann man im Datenobjekt mappen. Je nach genutztem Datenmodell bieten sich da unterschiedliche Methoden. Wenn Du ein typisiertes DataSet nutzt, kannst Du mit einer partiellen Klasse zum Datenobjekt eine weitere Eigenschaft bereitstellen, die Du im Programm nutzt und die im Getter und Setter die Konvertierung durchführt.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert Loki_1984 Mittwoch, 19. August 2015 12:37
    Mittwoch, 19. August 2015 07:20