SQL Datenbank, Daten ändern

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    SQL Datenbank, Daten ändern

    Hallo,

    Habe mich mal notgedrungen an SQL rann gewagt, bzw. habe schon mal mit SQL gearbeitet das ist aber schon ein paar Jerchen her...

    Hat soweit auch mal alles Fuktioiert und konnte erste Daten ablegen. Jetzt kommt das problem, ich habe das über "Datenquellen" gemacht also einfach in die Form gezogen, das klappt auch.

    Wenn ich aber einen alten wert änder dann kahm eine Fehler meldung das es nicht gespeichert werden kann und der Debug wurde Beendet, das gleiche Passiert auch wenn ich eine zeile Lösche. Habe es jetzt so abgeändert das wenigsens eine MSGbox kommt das mir das Programm nicht abschmiert, aber ich würde gerne wissen wie ich das ändern muss.

    VB.NET-Quellcode

    1. Private Sub LagerplatzBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles LagerplatzBindingNavigatorSaveItem.Click
    2. Try
    3. Me.Validate()
    4. Me.LagerplatzBindingSource.EndEdit()
    5. Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet)
    6. MsgBox("Update successful")
    7. Catch ex As Exception
    8. MsgBox("Speichern nicht Möglich")
    9. End Try
    10. End Sub​



    So dann gleich zur zweiten frage, dann brauch ich nicht noch ein Therd öffnen ;)

    Wie kann ich einzelene Werte ablegen, also mal ein Beispiel, ich habe 6 Spalten in der SQL tabelle, dann will ich 6 Textboxen haben und die Daten eingeben, dann auf Speichern klicken und dann sollen die Daten in die SQL Tabelle übertragen werden (in eine Zeile) wenn mir da noch jemand helfen könnte were suppi dann kann ich mir den rest selber erarbeiten :)

    KAXTJ schrieb:

    Wenn ich aber einen alten wert änder dann kahm eine Fehler meldung das es nicht gespeichert werden kann und der Debug wurde Beendet, das gleiche Passiert auch wenn ich eine zeile Lösche. Habe es jetzt so abgeändert das wenigsens eine MSGbox kommt das mir das Programm nicht abschmiert, aber ich würde gerne wissen wie ich das ändern muss.
    Du wirst doch wohl Daten ändern wollen...
    Den Try Catch-Zweig unbediengt wegmachen und den Fehler eruieren!
    Welcher Fehler und wo tritt er den auf?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VB1963“ ()

    Das Stichwort PrimaryKey hat geholfen der hat gefält, ist jetzt abgeändert und sihe da es Fuktioniert :))

    nun noch die zweite frege wie speicher ich von einer textbox in eine SQL Datenbank? also ich will das ich mein Lagerplatz in einer Textbox eingebe und auf speichern klicke, dann soll der inhalt der textbox, in eine neue Zeile der SQL datnbank geschrieben werden.

    Ah und ich würde noch gerne wissen wie ich eine combobox mit einem Inhalt einer Spalte der SQL datenbank fülle, und noch ein If satz dazu donnern kann, also so das nur die ergbnise in die Combobox geschrieben werden wo noch in der zweiten spalte der SQL datenbank ein bit gesetzt ist.
    also generell guck dir erstmal an, was an Vorgehensweisen zur Datenverarbeitung in Ado.Net vorgesehen ist: vier Views-Videos
    Da wird in verschiedenen Videos auch gezeigt, wie man Textboxen und Comboboxen an ein typisiertes Dataset bindet, und diese binden geht an Leistungsfähigkeit über das hinaus, was du da mit "speichern klicken und in Db schreiben" dir vorstellst.
    Ich etwa würde überhaupt keine sone Textbox hinmachen, sondern einfach den User in die Zufügezeile eines DGV schreiben lassen.
    Vielen dank bin ein Großes stück weiter gekommen. aber es haben sich dabei drei neue Probleme aufegtan:

    1. Ich bekomme beim Starten des Programms und beim Beenden einen Fehler, Hab ich auch schon gegooglet und bin dabei auf einen Schönene code gestoßen um diesen fehler zu umbehen, aber gibt es da eine andere alternative, nicht weil ich zu faul bin nur es kommt mir so vor als ob ich damit das ganze einstellen mir hätte sparen können weil es dann vom code übernommen wird.
    Beim beenden: DataGridView-Ausnahme:
    System.IndexOutOfRangeException: Der Index 0 hat keinen wert bei System.Windows.Forms.CurrencyManger.get_Item(int32 index)
    System.Windows.Forms.DaragridView.DataGridViewDataConnection.getError(Int32boundColumnindex, Int32 columnIndes, Int32 WorIndex)

    Beim Starten: DataGridView-Ausnahme:

    System.FirmatException: DerGridViewComboBoxVell-Wert ist ungültg.

    2. wenn ich aus der Tabelle KUNDEN die werte nähmen will, in der combobox der Tabele artikel kommt auch ein fehler (siehe bild "Fehler")

    3. (Bild "Stimt nicht") Da ist es so, das überall der Lgerplatz richtig angezeigt wird, in der Tabelle lagerplatz und auch in der tabelle wo es zum daten eingeben ist. aber in der tabelle wo die werte nur angezeigt werden werden nur die indexwete wieergegeben, obwohl die einstellungen stimmten (Bild "3")
    Bilder
    • 3.PNG

      26,67 kB, 1.053×542, 177 mal angesehen
    • Fehler.PNG

      44,75 kB, 860×587, 159 mal angesehen
    • Stimmt nicht.PNG

      37,46 kB, 1.038×447, 149 mal angesehen
    den Combobox-Fehler beim Schließen des Forms kenne ich - das issn WinForms-Bug. Ich weiß nicht, welchen schönen Code dazu du gefunden hast, ich hab meinen in diesem Tut veröffentlicht: Daten laden und speichern

    Beim Laden aus einer DB kann alles mögliche schief laufen, ein beliebtes Problem ist, dass die Tabellen in falscher Reihenfolge befüllt werden, sodass untergeordnete Datensätze geladen werden, deren ParentRows noch nicht da sind - sowas knallt dann ggfs. als Constraint-Exception.

    aber lies dir das Tut gründlich durch, auch die Vorbemerkung, und probier die SampleProjekte aus.

    Zu deinen anneren Fragen weiß ich nix - ich kann ja nicht überprüfen, ob es stimmt, dass die "Einstellungen stimmen" (dass was falsches angezeigt wird, spricht eher dagegen ;) )
    Habe es grade eh gecrescht 220 Feheler im Designer^^ Werde mich mal drann setzten und es Komplett neu machen. Vil Leuft es dann besser hatte schon viel rumm probiert in dem Projekt vil. ein Bischen zu viel
    die 220 Fehler sind (bei mir zumindest) einfach ein Verhaspeln des Dataset-DesignerCodes.
    Da kann man oft einfach im Designer an einer Tabelle bischen wackeln, und dann "neu erstellen" klicksen.
    Das Wackeln nimmt der Designer dann zum Anlass, den DesignerCode neu zu generieren, und meist ists dann wieder gut.
    Man kann auch rabiater vorgehen - die DesignerCode-Datei zuvor komplett löschen, oder - weniger rabiat - ihren Code komplett aus-cutten und wieder einpasten, und verschiedenerlei Übungen.

    Jedenfalls die 220 Fehler sind nicht deine Schuld.

    Was insgesamt immer ganz wichtig ist: Backup machen. (Und ausserdem testen, ob das Backup auch restaurierbar ist)

    Hier habich ein Tool gebastelt, mit dem man mit 1 Klick ein Backup machen kann: SolutionExplorer - OpenSource
    ja, kann sein. kenn ich mich nicht mit aus.
    Muss man da nicht immer einchecken und auschecken, und wenn eine Datei dazukommt, bei Git bescheid sagen, und son Heckmeck?

    Aber das ist auch nicht soo primär, wie man es anstellt, das allerwichtigste ist doch: dass man sich überhaupt eine zuverlässige und leicht bedienbare Backup-Möglichkeit beschafft, so leicht bedienbar, dass man sie auch wirklich häufig nutzt.
    Danke aber ich denke mal das es sinvoller ist das ganz neu zu machen, habe echt sehr viel rumm probiert und unsauber gearbeitet :) aber wenn ich jetzt schon dabei bin, kann ich eine bezihung volgender maßen setzten (im Database)

    "ID" von Lagerplatz Tabelle -> "Lagerplatz" von Artikel Tabelle (Dropbox) // Das fuktioneirt natürlich
    "Lagerplatz" von Artikel Tabelle -> "Belegt" von Lagerplatz Tabelle (Bit) // fuktioneirt das? möchte ereichen das wenn in der Artikel Tabelle eine Lagerplatz ausgewält wird, der in der der Lagerplatz Tabelle als belegt angezeigt wird.

    EDIT: logisch ist das ich dann den tyo in system.int64 ändern muss, aber kann ich den später als Radiobutton formatieren so das er aktviert wird?

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

    KAXTJ schrieb:

    Danke aber ich denke mal das es sinvoller ist das ganz neu zu machen, habe echt sehr viel rumm probiert und unsauber gearbeitet
    Jo, das kann schon sein, dass ein Rewrite sinnvoll ist.
    Ändert aber nix daran, dass du ein Backup-Tool brauchst - egal welches, hauptsache es macht seinen Job, und du benutzt es auch.

    lies nochmal die Vorbemerkung von Daten laden und speichern - du kannst dir eine Menge Schwierigkeiten ersparen, wenn du nicht versuchst, von Anfang an alles auf einmal zu stemmen.

    Deine Frage verstehe ich in Grundzügen, nur was ist ein Artikel Tabelle (Dropbox), und was ist ein Lagerplatz Tabelle (Bit) - also Dropbox kenne ich - ein Online-Dienst, aber Bit - ja gut, kenne ich auch: die kleinste binäre Einheit - jedenfalls ergibt das bei mir keinen Sinn im Zusammenhang deiner Frage.

    Und wie gesagt (post#3): bitte Screenshot vom typisierten Dataset.
    Weil was ich da sehe, davon sind die Bedeutungen klar definiert.
    Sorry stand da grade auf dem schlauch also Dropbox wahr falsch ich meine Cobobox, und mit bit meinte ich bolen,

    habe mal die dazugehörigen bilder gemacht, Also ich habe eine bezihung von der "ID" der Lagerplatz tabelle zu "Lagerplatz" in der Artikel tabellte.

    Jetzt habe ich die die idee gehapt, das ich wiederum "Lagerplatz" in der artikeltabelle in eine Bezihung zu "Belegt" (JA/Nein) in der Lagerplatz tabelle setztn kann. So das sobald der Lagerplatz ausgewält ist dieser als belegt erscheint
    Bilder
    • 1.1.PNG

      12,5 kB, 258×331, 141 mal angesehen
    • 1.2.PNG

      15,12 kB, 262×339, 124 mal angesehen
    • 1.3.PNG

      16,39 kB, 264×399, 134 mal angesehen
    • Database.PNG

      35,4 kB, 1.052×561, 141 mal angesehen
    ich kann nur präzise Fragen beantworten.

    "alles" kann ich dir nicht erklären, denn "alles" kann ja alles bedeuten, und das ist zuviel.

    Post#15 enthält vlt. 25 Worte - da muss doch präzise anzugeben sein, welche davon du nicht verstehst.

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

    Danke so langsam wird es was. nach dem ich jetzt nach und nach alles neu Aufsätze funktioniert auf einmal alles, habe aber jetzt auch die abgänderte speicher variante und Schlies Variante mit eingebaut. Beim automatischen abändern der Lagertabelle, das ein Lagerplatz belegt ist bin ich grad drann und das Erschliest sich mit auch so langsam.

    Hast du vil. noch einen Rat bzw. tip wo ich was finden könnte zu dem Tema:

    Ich habe mir überlegt das ich jezt das ganze spektakel mit den text boxen sein lasse, aber dann brauche ich einen weg wie ich nach 2 Sachen suche. die Suche nach einer Sache fuktioneirt schon, aber ich möchte gerne das nach 2 parametern gesucht wierd. Sowohl der kunde als auch die EAN müssen stimmen. Wie geht das?