Verarbeitung einer Zeile aus einer Zeile über SQL VB.NET

  • VB.NET
  • .NET 4.5

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jnpanzer.

    Verarbeitung einer Zeile aus einer Zeile über SQL VB.NET

    Hallo zusamen,
    Ich bastle gerade an einen Proramm.

    Ich habe einen Datenbank mit 83 Spalten

    Quellcode

    1. /NAME/LFD/WERT01/WERT02/WERT03/WERT04/WERT05/WERT06/WERT07/WERT08/WERT09/WERT10/WERT11/WERT12/WERT13/WERT15
    2. /WTBP/80 /23 / 24 / 2 / 24 / 11 / 9 / 66 / 2 / 0 / 0 / 85 / 26 / 22 / 26
    3. USW


    USW


    Ich möchte ein
    * Update über SQL ausführen auf die Spalten die den Wert 10 enthalten.
    * Update wo der Wert 11 enthält, die Spalte WERT03 zu ändern.
    * Update wo der erste Wert 0 steht eine Wert eintrage

    Ich mache es zur Zeit so das Ich alles auslese die Daten einzeln in einen Variable Speicher und danach prüfe und wieder wieder zurück schreiben.
    Das klappt auch aber ....

    Gibt es eine Bessere Lösung über einen SQL Befehl.

    Gruß
    Jürgen

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „jnpanzer“ ()

    Ist mir nicht bekannt.
    Ich würde das genau so machen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    jnpanzer schrieb:

    Ich mache es zur Zeit so das Ich alles auslese die Daten einzeln in einen Variable Speicher und danach prüfe und wieder wieder zurück schreiben.
    Zeig mal deinen bisherigen Code her. Aus deinen Beschreibungen kann sich keiner (ich jedenfalls) was konkretes vorstellen.

    jnpanzer schrieb:

    Gibt es eine Bessere Lösung über einen SQL Befehl.
    Für welches Problem jetzt genau?

    Eine Frage: Auf welche SQL Version bezieht sich deine Frage? Verwendest du MSSQL, MySQL oder was anderes?

    jnpanzer schrieb:

    Update über SQL ausführen auf die Spalten die den Wert 10 enthalten.

    SQL-Abfrage

    1. UPDATE tabellenName SET spalte1=wert1, spalte2=wert2, spalte3=wert3, ..., spalteN=wertN WHERE spalte1=10, spalte2=10, spalte3=10, ..., spalteN=10
    Sofern du die Spaltennamen weißt. Ansonsten könnntest du dir über das Datenbankschema die Namen der Spalten für die Tabelle holen und in einer Schleife die Liste durchgehen und für jede Spalte ein UPDATE tabellenName SET spaltenName = wert WHERE spaltenName = 10.

    jnpanzer schrieb:

    Update wo der Wert 11 enthält, die Spalte WERT03 zu ändern.
    Willst du hier Spalte WERT03 ändern, wenn NUR die Spalte WERT03 den Wert 11 hat oder sobald mindestens eine Spalte 11 enthält die Spalte WERT03 ändern? Für ersteren Fall dürfte das in einem Statement lösbar sein. Sollte zweites zuteffen, einfach Lösung von oben verwenden, WHERE Teil abändern und fertig

    jnpanzer schrieb:

    Update wo der erste Wert 0 steht eine Wert eintrage
    Bitte WAAAS? *räusper* Könntest Du das eventuell ein wenig genauer ausführen was damit gemeint ist?

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Hallo Radianator,
    ich habe eigentlich das Problem das ich 80 Spalten habe die mir bekannt sind.
    1. Problem
    Ich habe eine Zeile mit 80 Spalten, wo ich in die Spalte wo der Wert wo mit einer 0 eine neue Zahl reinschreiben möchte.
    2. Problem
    Desweitern möchte ich in jede Spalte der Zeile wo eine 10 steht eine 0 reinschreiben.

    ich habe es schon gelöst mit auswerten, auslesen und überrprüfen usw.

    ich dachte mir nur das es eine elegante SQL Lösung gibt. Ich kann mit SQL LIKE ja nur eine Spalte durchsuchen, mein Ziel ist es mit like mehrere Spalten zu durchsuchen oder was ähnliches, ich weis nicht ob es eine Lösung gibt.
    Gruss Jürgen

    jnpanzer schrieb:

    ich dachte mir nur das es eine elegante SQL Lösung gibt. Ich kann mit SQL LIKE ja nur eine Spalte durchsuchen, mein Ziel ist es mit like mehrere Spalten zu durchsuchen oder was ähnliches, ich weis nicht ob es eine Lösung gibt.
    Nein - gibt es natürlich nicht.
    Das "Problem" sind die Datentypen. Auch in Sql gibt es Datentypen, und mit Like kannst du nur Text-Spalten (char, nchar, varchar, nvarchar) untersuchen.
    Da aber jede Spalte einen eigenen Datentyp hat (der nicht immer Text sein muss), kann es schon aus technischen Gegebenheiten keine Suche geben, wo man mit einem Vergleich mehrere Spalten gleichzeitig untersuchen kann.