Datenbank Ungültiger Spaltenname

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von steel75.

    Datenbank Ungültiger Spaltenname

    Hallo zusammen,
    ich habe ein sehr seltsames Verhalten bei einem Windows Dienst den ich gerade entwickle, dieser nutzt zur Datenhaltung einen MSSQL Server 2017 Standard (Funktionsebene 2014)
    bei diesem Update Befehl, er wirft eine SQLException "Ungültiger Spaltenname" personalnummer. Es werden Felder aktualisert, auf eine Personalnummer, also WHERE Klausel

    ...personalnummer='" & personalnumber & "';

    das wars, relativ simpel.
    Das Problem ist diese Spalte personalnummer gibt es nvarchar(255) in der Stammtabelle und der gesamte zusammen gebaute Update Befehl lässt sich im Microsoft SQL Mangement Studio 19.1
    ohne Probleme ausführen und updatet auch den Datensatz, irgendwie sehe ich greade nicht das Problem.

    Hatte das schon mal einer?
    Hat irgendeiner eine Idee was man noch probieren könnte oder wo man schauen könnte?

    Einiges habe ich schon probiert mit Parameters und der gleichen, dass hilft aber nicht.

    Danke schon mal
    VG steel

    steel75 schrieb:

    SQL-Abfrage

    1. ...personalnummer='" & personalnumber & "';
    ... und der gesamte zusammen gebaute Update Befehl lässt sich ohne Probleme ausführen ...
    mag sein, dass sich der zusammengebaute ausführen lässt, aber das was du uns zeigst: ...personalnummer='" & personalnumber & "'; lässt sich sicherlich nicht ausführen.
    Was sollen wir da also tun?

    Ich bin mir übrigens fast sicher, dass die Variable personalnumber irgendetwas enthält, was zum Fehler führt.
    Aber wie gesagt: Wir können es ja nicht sehen....

    Marcus Gräfe schrieb:

    Fehlt da nicht am Ende ein "?

    Wird evtl. zwischen Groß- und Kleinschreibung unterschieden und das Feld heißt entsprechend anders?


    ja stimmt, da fehlt ein " aber ist nur hier so, im Code ist es vorhanden, hab ich geprüft.

    Keine Ahnung was jetzt passiert ist, aber ich kann nicht mehr antworten, die Buttons unten sind verschwunden.
    VG steel

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „steel75“ ()

    jetzt sind snd sie wieder da 8o

    Das Feld personalnumber ist befüllt mit einer eindeutigen Personalnummer, sieht man auch im Log. Die vor diesem UPDATE Befehl mit zwei anderen Methode erfolgreich auf Existenz und gegen eine Blacklist geprüft wurde, auch da hab ich einen Screenshot des Logs angehangen. Da ist der selbe WHERE Teil drin,
    nur halt mit SELECT.

    Wie gesagt, ich habe im WHERE schon einiges getestet Parameter usw., hab den UPDATE klein gemacht, normalerweise sind das ca. 40 Spalten, ich habs mal mit 5 Spalten probiert, die Meldung ist bis jetzt immer die Gleiche, als ob das ein reserviertes Schlüsselwort wäre "personalnummer",
    aber das ist es auch nicht.

    Ich glaub das ist irgendeine Kleinigkeit, nur sieht man den Wald wieder vor Bäumen nicht.
    Bilder
    • sapsync_Fehler1.jpg

      40,21 kB, 2.095×65, 60 mal angesehen
    • sapsync_fehler2..JPG

      20,11 kB, 396×142, 57 mal angesehen
    • sapsync_fehler3.JPG

      29,63 kB, 1.114×38, 65 mal angesehen
    • sapsync_fehler4.JPG

      21,03 kB, 456×90, 66 mal angesehen
    VG steel
    danke euch, für eure Hilfe. Ich hatte es gestern nicht mehr geschafft zu schreiben.

    Ich hatte mich gestern hinzugesetzt und alles auf Links gedreht und ich hab den Fehler gefunden.
    Er lag nicht am Update Befehl, dieser war richtig, sondern am Connection String. Der Dienst arbeitet
    mit mehreren unterschiedlich konfigurierbaren Datenbank zusammen und hier, wie ich vermutet
    hatte (eine Kleinigkeit) der Update Methode, der falsche Connection String mitgegeben worden. was
    dazu geführt hat, dass er in einer Datenbank geschaut hat, wo personalnummer in der Tabelle so
    wirklich nicht vorkommt. Was mir aber immer noch schleierhaft ist, wieso er keine Meldung zu anderen
    ungültigen Spalten geworfen hat, den da gebs dann ja noch mehr.

    Aber vielen Dank für eure Hilfe.
    VG steel