Datenbank aktualisieren

Horst1945

Cadet 4th Year
Registriert
Okt. 2014
Beiträge
106
Hallo,
ich habe folgendes Problem bei Lieferschein ändern:
Wenn ich zum Beispiel die Menge bei einen geschriebenen Lieferschein ändern will, soll auch die Menge und der Bestand in der Artikel-Datenbank geändert werden!

Da gehe ich folgendermaßen vor:

Ich lese die bestehende Menge aus der Artikel-DB aus und konvertiere diese mit convert.toInt32, unteranderem auch die Menge in der Lieferschein-DB.

var merke4 = Convert.ToInt32(txtMenge.Text); // Lieferschein neue gelieferte Menge
var merke5 = Convert.ToInt32(Zahl_Li); // bisher gelieferte
var merke6 = Convert.ToInt32(Zahl_Art); // Aktueller Stand der Menge in der Artikel-DB
zB. Zahl_Art = 10
Zahl_Li = 5 (Alter Stand)
txtMenge.Text = 6 (Neuer Stand)

Also ist der neue Stand + 1

Und so wird es weiterberechnet:

var merke3 = (merke4 - merke5);
merke3 = merke6 - merke3;
String berech = Convert.ToString(merke3);

und mit dem strUpdate ("Update Artikel Set menge = '" + berech + "', bestand = '" + berech + "' where artnr = '" + txtArtNr + "'";

sollte die Artikel-DB aktualisiert werden
Leider klappt es nicht.

Hier die Artikeldatenbank:
artikel_DB.jpg
 
Zuletzt bearbeitet:
Ohne eine Fehlermeldungn kann Dir keiner helfen.
Ausserdem: Wiso sind so Felder wie Bestand und Menge keine Zahlen in der DB? Oder Infos zum Lieferant oder Lagerort in einer seperaten Tabelle?
Und ich hoffe mal deine Variablen heissen im Code nicht wirklich "merke1" - "merke99", für sowas gehört man geschlagen...
 
Lawnmower schrieb:
Ohne eine Fehlermeldungn kann Dir keiner helfen.
Ausserdem: Wiso sind so Felder wie Bestand und Menge keine Zahlen in der DB? Oder Infos zum Lieferant oder Lagerort in einer seperaten Tabelle?
Und ich hoffe mal deine Variablen heissen im Code nicht wirklich "merke1" - "merke99", für sowas gehört man geschlagen...

Ich hatte die Assecc-Datenbank Faktura mit SQL Manager Studio konvertiert und so ist sie halt konvertiert worden!
 
Du musst den Datentyp der Spalte im SQL Management Studio ändern (oder über ein Alter Table). Mit einem Update an sich wird das nichts, dabei bleibt ja der Datentyp der Spalte weiterhin ein varchar.
 
IKäsebrot schrieb:
Du musst schon genauer werden:

Bekommst du einen Fehler? Wird einfach nichts geschrieben oder passiert was ganz unerwartetes? Bitte beschreibe dein Problem ausführlicher!

Nein einen Fehler bekomme ich nicht. Das Update wird ohne eine Fehlermeldung durchgeführt. Aber wenn ich mir die Tabelle "Artikel" einmal anschaue, da bleiben die Werte "Menge" und "Bestand" die gleichen, wie vor dem Update!!!
 
Lawnmower schrieb:
Und ich hoffe mal deine Variablen heissen im Code nicht wirklich "merke1" - "merke99", für sowas gehört man geschlagen...

Ich finde schlagen sollte man dafür keinen. Jeder benennt seine Variablen wie er will! Aber einen klapser auf die Finger kann es schon geben für sowas.

Versuche bei der Nomenklatur der Variablem auf zwei Dinge zu achten:
  1. Keine Zahlen, Sonderzeichen oder vergleichbares im Variablennamen.
  2. Ganz wichtig, benenne Variablen immer so, dass nicht nur du den Zweck dieser Variable erkennst sondern auch immer ein Zweiter/Dritter mit deinem Code was anfangen kann! Der Variablenname muss so aussagekräftig sein, dass der Zweck der Variable für jeden ersichtlich ist!



Stell dir vor du musst deinen Code in 3 Jahren nochmal lesen und verstehen. Glaub mir du wirst dich schämen für diese Variablennamen ;)
Ergänzung ()

Kannst du bitte die gesamte Methode posten. Für mich ist nicht ersichtlich wo oder wie du entscheidest welcher Eintrag aktualisiert wird.
 
Funktioniert dein Update Skript den wenn du es im ManagementStudio abschickst?
 
Alles behoben, denn es klappt seitdem ich den:

Update Artikel Set menge = '" + berech + "', bestand = '" + berech + "' where artnr = '" + txtArtNr + "'";

in

Update Artikel Set menge = '" + berech + "', bestand = '" + berech + "' where artnr = '" + txtArtNr.Text + "'";

umgeschrieben habe, denn wie immer habe ich die Endung .Text wieder einmal vergessen gehabt!!!!!
 
Werde ich machen lieber @IKäsebrot

noch einmal vielen Dank für Euren Hinweis

Horst
 
Zurück
Oben