locked
VS2013Prem,Win7Pro,AccessDB,Datenzugriff RRS feed

  • Frage

  • Hallo,

    ich habe wieder einmal ein Problem : Es gibt eine DB Access, mit einer Table BookTable, darin mehrere Spalten, eine heißt Standort. Der Inhalt der Zellen ist vom Typ String, und besteht aus bis zu 4 Einzelstrings (ich nenne diese zur Vereinfachung einmal einfach mit Buchstaben a,b,c,d usw.) , die zB. mit a+v+s+e oder d+h+r+a oder a+b oder auch s+h+r usw. zum einem String Standort unterschiedlicher Länge zusammengesetzt sind. Jetzt möchte ich bestimmen, wie oft ein solcher String Standort in der Spalte vorhanden ist. Dazu verwende ich

    var cmdWerkZahl = new OleDbCommand("SELECT COUNT(Standort) FROM BookTable " +
                                                                    "WHERE Standort = '" + LocationNeu + "' ", conn1);
    var werkZahl = Convert.ToInt16(cmdWerkZahl.ExecuteScalar());

    Für LocationNeu setze ich zB. a+x+s+b oder nur k oder w+h+j und  wird dafür ein solcher Eintrag gefunden, wird werkZahl entsprechend erhöht. Bis hierher alles OK. Jetzt aber möchte ich bestimmen, wieviel Einträge es gibt, wenn der String LocationNeu nur ein Teil am BEGINN von Standort ist ! Beispiel: es gibt zB. a+v, a+v+g, a+v+f+r, a+v+h usw. in der Spalte und will wissen, wieviel davon mit a+v beginnen. Und das gelingt mir nicht. Wie muss man die WHERE - Klausel gestalten, dass alles Standorte gezählt werden, die mit a+v beginnen ?? Ein TeilString nach a+v  dabei aber ohne Relevanz auf das Ergebnis bleibt. In der MS-Literatur lese ich, dass ein Ausdruck  'XY%'  alles findet, das mit XY beginnt. Aber wie sieht dafür die WHERE-Klausel aus ?

    Vielen Dank für eure Mühe!

    Gruß !

    Hermann


    Hermann-Sbg

    Montag, 6. April 2015 10:00

Antworten

  • Hallo Hermann,
    wenn ich das richtig verstehe suchst Du:

    WHERE Standort like 'a+v%'  

    HTH

    Grüße Alexander

    • Als Antwort markiert Hermann-Sbg Montag, 20. April 2015 14:23
    Montag, 6. April 2015 10:49

Alle Antworten

  • Hallo Hermann,
    wenn ich das richtig verstehe suchst Du:

    WHERE Standort like 'a+v%'  

    HTH

    Grüße Alexander

    • Als Antwort markiert Hermann-Sbg Montag, 20. April 2015 14:23
    Montag, 6. April 2015 10:49
  • Hallo Alexander,

    Danke für deinen Hinweis, aber es ist zum verzweifeln : Ich kann das Zeichen % in der WHERE-Klausel setzen wo immer ich will, aber außer Syntaxfehlern erreiche ich nichts. Um es noch deutlich zu machen : In der Spalte Standort stehen Ausdrücke wie zB.: "Büro+Regal+Etage-03+Fach-04" . Für LocationNeu setze ich zB.: "Büro+Regal" , weil ich wissen will, wieviele Standorte und damit werkZahl es mit LocationNeu gibt. (Du vermutest richtig : Es geht um die Organisation meiner ziemlich umfangreichen Bibliothek).

    Was kann ich noch versuchen ?

    Danke füer deine Hilfen !

    Gruß !

    Hermann


    Hermann-Sbg

    Mittwoch, 8. April 2015 08:46
  • Hallo Alexander,

    ich war nicht achtsam genug, aber jetzt ist alles OK, ich konnte - wie Du vogeschlagen hast -  mit LIKE das Problem lösen. Das Gleichheitszeichen geht nur, wenn der gesamte String verglichen wird, wird ein Teil verglichen, muss man LIKE verwenden.

    Danke nochmals !

    Gruß!

    Hermann


    Hermann-Sbg

    Montag, 20. April 2015 14:22