Button Save über eine andere Form in der Datenbank SQL speichern

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

Es gibt 35 Antworten in diesem Thema. Der letzte Beitrag () ist von Jasse.

    Button Save über eine andere Form in der Datenbank SQL speichern

    Meine Frage ist ich möchte gerne über eine andere Form wenn auf den Button ok drücke, den Text den ich eingetragen habe in die Datenbank speichern.


    über die selbe form benutze ich diesem Befehl :
    BindingNavigatorSaveItem_Click()

    wie mache ich das über eine Andere Form ?

    Habe dem Textfeld auch die Databinds zugewiesen !!!!
    Dann rufe das Usercontrol mit dem Button auf und Sende per Button den Text und den Befehl an das Usercontrol.

    Als Beispiel
    Beispiel

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim TextboxText as String = TextboxName.Text
    3. Form1.Usercontrol.Send(TextboxText) ' Dies ist nur ein Beispiel und nicht Funktionierender Code!
    4. End Sub


    Ich hoffe es ist Soweit Verstaendlich,
    Pack ein Form1, oder wie auch immer deine Form heisst plus das control und den befehl dem du ausfuehren willst rein und zb. der Button in Form2 sollte den Text von Form2 in die Textbox von Form1 Kopieren.


    Am Besten Erklaerst du mir, Was dein UserControl ist, und mit welchem Befehl / Mit welcher Logik es Text in eine Datenbank Sendet, dann koennte ich das evtl. noch genauer Erklaeren.

    Kannst auch mal nen Blick hier Hinein Riskieren:
    msdn.microsoft.com/en-us/library/f6525896(v=vs.90).aspx

    lg
    Begeisterter BF4 Spieler :D
    Danke schonmal im Vorraus aber wir reden leider aneinander vorbei!

    Ich erkläre es dior nochmal genauer!

    Ich bin dabei ein Gutachtenprogramm zu schreiben habe in meiner Form1 das meü mit der Datenbank die in einem Panel geladen wird über einer Usercontrol. der sin der dahinter steckt ist das ich in dem Panel auchj eingabemasken über eine neue usercontrol laden möchte!

    So mein problem ist jetzt, ich habe in form ein ein button der nennt sich gutachten erstellen wenn ich darauf klicke öffnet sich form2 wo steht wo ein Label mit einer Testbox ist und oben drüber steht bitte geben sie eine Gutachternummer ein. neben der Textbox ist ein button mit ok und mit diesem button soll er das was in der Textbox ist in die Sql datenbank unter dem Reiter Gutachtennummer einfügen und speichern.
    Die Textbox konnte ich schon über databindings an den reiter vergeben.

    Ich hoffe es ist jetzt verständlicher
    Ja ist doch richtig, sofern ich es jetzt richtig verstanden habe.

    VB.NET-Quellcode

    1. ' Dies ist ebenfalls nur Beispiel-Code!
    2. Formname.Controlname.Add(Textbox1.Text)
    3. ' Falls das ganze auf einer form ist
    4. Controlname.Add(Textbox1.Text)


    Ansonsten, falls ich das jetzt schon wieder Falsch hab, schick mir evtl. mal Einen Screenshot von Beiden Formen, dann ist es Glaub ich Verstaendlicher :)

    lg
    Begeisterter BF4 Spieler :D
    Hi,
    mache dir eine Variable in Form 1 für den Text aus der Textbox in Form 2.
    dann gib deiner Form2 in den Einstellungen als AcceptButton den Button OK.
    dann erzeuge in Form1 eine Instanz der Form2 und reagiere auf den DialogResult der Form 2.
    ist dieser = DialogResult.OK dann weise deiner Variablen den Text aus der Textbox zu.
    due Variable kannst du dann in deinem SQL Befehl verwenden.
    "Hier könnte Ihre Werbung stehen..."
    Hi,
    also, so wie ich es verstanden habe, möchtest Du aus einer 2. Form, werte in die Hauptform übertragen um dort damit etwas anzustellen, richtig?

    dann ist der sinnvollste weg, eine neue Instanz deiner 2. Form zu erstellen und dort auf den DialogResult zu reagieren.

    VB.NET-Quellcode

    1. ​Dim DeineVariable as String
    2. Using f as new Form2
    3. if f.ShowDialog() <> DialogResult.OK then Return
    4. DeineVariable = f.TextBox1.Text
    5. end using


    in der 2. Form gehst du in die Einstellungen der Form und gibst der AcceptButton eigenschaft den OK Button.
    "Hier könnte Ihre Werbung stehen..."
    Hä, wo ist denn der unterschied zwischen

    VB.NET-Quellcode

    1. Dim DeineVariable as String
    2. DeineVariable = Form1.TextBox1.Text

    Und

    VB.NET-Quellcode

    1. Dim DeineVariable as String
    2. Using f as new Form2
    3. if f.ShowDialog() <> DialogResult.OK then Return
    4. DeineVariable = f.TextBox1.Text
    5. end using


    ?
    Das 2. ist doch viel Umständlicher, beides Funktioniert.

    lg
    Begeisterter BF4 Spieler :D
    Beides ist Blödsinn. Das Erste auch noch mehr als das Zweite, da dort zumindest der Ansatz richtig ist.
    Hier werden schlicht alle Regeln der OOP gebrochen. So bitte nicht.

    Dialoge: Instanziierung von Forms und Aufruf von Dialogen

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich habe Kein Einziges Problem gehabt.

    Kein Performence Problem,
    Keine Code Probleme,
    Programm hat sich bei mir noch nie Weggehangen,

    also ich finde das ganze etwas "Unnoetige Zeilen Verschwendung" auch wenn man natuerlich unendlich viele Zeilen Platz hat.

    Und ich werde auch Solange damit weiter Machen, bis ich Es anders machen moechte, weil ich einfach keine Nachteile sehe, und auch keinen einzigen Nachteil habe.

    (Meine Meinung) natuerlich ist jede meinung akzeptiert und eigentlich schweift das hier auch ein Bisschen von Thema ab, daher lassen wir das lieber, dafuer ist der Off-Topic bereich da.

    lg
    Begeisterter BF4 Spieler :D
    Keine Probleme? Dann bist Du offensichtlich noch nie mit Threads am Werkeln gewesen. Da rennst Du damit nämlich relativ schnell gegen die Wand. Außerdem würde ich gerne erfahren, wie Du es damit schaffst mehrere Forms gleichzeitig anzuzeigen. Zudem wie kriegste das ordentlich in C# konvertiert?
    Wenn Du das so machen willst, dann mach das so. Aber bitte gebe hier anderen keine Lösungen, die einfach unsauber und so gesehen falsch sind. Davon abgesehen, dass z.B. C# das auch nie zulassen würde und Du das in jeder anderen Sprache vernünftig machen musst. Heißt Form instanziieren, Events abonnieren bzw. Properties abrufen/setzen, Form anzeigen und dann Daten transportieren. Das da ist allerdings nur eine Verletzung des OOP-Konzepts, nichts anderes.
    Forms sind Klassen und folglich muss man eine Instanz von ihnen erstellen, um ein Objekt zu erhalten, mit dem man was anstellen kann. Und Controls gehören nie öffentlich.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Das klappt leider nicht so!

    habe dir 2 Bilder angehangen damit du siehst wie ich das meine.

    noch zur den Details wie die Form Menü aufgebaut ist:

    Da wo die datenbank ist befindet sich ein Panel der über einn Befehlt die CurseControl1 Läd!


    Wenn ich in der Eingabe eine Nummer vergebe möchte ich gerne das dieses in der Datenbank übernommen wird und dach öffnet sich eine neue Usercontrol mit den nächsten Eingaben. Das dass nächste Userconrtol sich öffnet habe ich schon hinbekommen.

    meine frage ist halt wie stelle ich das an er die Daten in die Datenbank schreibt?
    Bilder
    • Eingabe.JPG

      128,22 kB, 1.884×961, 190 mal angesehen
    • Menü.JPG

      128,12 kB, 1.904×1.011, 198 mal angesehen
    Das hat doch garnichts mit Unsauberkeit zutun.

    Wenn man eben ohne Threads programmiert ist das andere Zeugs einfach Unnoetig.

    Ausserdem hat das ganze auch etwas damit zutun, In welchem Bereich der Programmierung man sich Bewegt und was man Programmiert.

    Desweiteren, warum sollte ich bitte Meinen Code in C# Konvertieren, wenn ich C# nicht nutze?
    Ausserdem weiss ich dass Mein Oben genannter Code in C# nicht funktioniert! Und ich weiss auch wie das ganze in C# Funktioniert, jedoch Brauche ich das nicht, weil ich C# nicht Benutze.

    Und was ist Bitte daran so schwer Mehrere Forms gleichzeitig anzuzeigen, wo soll denn da bitte mit meinem Code ein Fehler auftreten?

    Okay, Beschreiben wir es anders! Es ist Fuer mich Unnoetig, weil ich das nicht Brauche.
    Natuerlich Akzeptiere ich deine Meinung, dass das Ganze fuer dich evtl. Unsauber ist, aber Mir Reicht dieser Kleine Code Vollkommen aus.

    Ich muss sowieso jetzt weg, Bleibe aber eingeloggt, nicht das mir hier nacher noch Unterstellt wird dass ich doch Online war, (was mich zwar nicht Jucken wuerde) aber um sowas zu vermeiden Kuendige ich das lieber mal an.

    lg
    Begeisterter BF4 Spieler :D
    Natürlich hat es was mit Unsauberkeit zu tun?! Was soll denn bitte daran sauber sein, wenn ich in einer objektorientierten Hochsprache das objektorientierte Prinzip verletze? Gefährliches Halbwissen.

    Gangsterkrafter schrieb:

    Wenn man eben ohne Threads programmiert ist das andere Zeugs einfach Unnoetig.
    Achso, verstehe. Weil ich nur schnell 10km/h fahre, kann ich die Airbags aus meinem Auto ausbauen. Schließlich sind die ja dann überflüssig.

    Gangsterkrafter schrieb:

    Und was ist Bitte daran so schwer Mehrere Forms gleichzeitig anzuzeigen, wo soll denn da bitte mit meinem Code ein Fehler auftreten?
    Das hier beweist mir nämlich, dass Du nicht weißt, was passiert und wo das Problem liegt. Probier's doch einfach mal aus. Würde mich ja schon interessieren, wie Du das machst, wenn's so einfach ist.

    Gangsterkrafter schrieb:

    Natuerlich Akzeptiere ich deine Meinung, dass das Ganze fuer dich evtl. Unsauber ist, aber Mir Reicht dieser Kleine Code Vollkommen aus.
    Nicht nur für mich. Der Großteil der aktiven Mitglieder hier wird Dir dasselbe sagen, genauso wie jeder andere erfahrene Programmierer woanders. Und das aus gutem Grund. Wie gesagt, wenn Du das benutzt, ist das egal. Aber jemand der gerade lernt sollte es dann schon richtig lernen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hab mich schon gefragt wann hier jemand mal was sagt.

    Lieber TE, nimm dir das hier bitte zu Herzen und lerne es richtig:

    Trade schrieb:


    Hier werden schlicht alle Regeln der OOP gebrochen. So bitte nicht.

    Dialoge: Instanziierung von Forms und Aufruf von Dialogen


    Edit:
    Zudem hast du da in deiner Form1 keine DB, sonden ein Grid. Blicke leider immer noch nicht was du genau machen möchtest. Der zusätzliche Dialog soll den Inhalt der sich dort befindenden TextBox in eine Zelle deines Grids schreiben, ok aber was passiert dann?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Sorry, würde dir gerne helfen, nur schreibst du so dermaßen umständlich und verwendest Fachbegriffe falsch das ich gar nicht verstehe was genau du wie machen willst. Vielleicht liegt es auch an mir...

    Hat das hier was mit deinem Problem zu tun, oder ist das nur so zur Info?
    Da wo die datenbank ist befindet sich ein Panel der über einn Befehlt die CurseControl1 Läd!


    Soll denn diese Textbox was in die Datenbank schreiben, oder in eine bestimmte Zelle vom DataGrid?

    Nur um sicher zu gehen:
    Datenbank = Datenbank (MySQL, SQL-Server, Access, etc)
    DataGrid = Steuerelemet

    Meinst du mit Usercontrol diesen kleinen Dialog in dem sich diese ominöse TextBox befindet?

    Was ist ein "CurseControl1"?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Genau die Textbox soll was in die Datenbank schreiben in der Spalte Gutachtenummer.

    Sorry ich bin halt Neuling und weiß nicht anders wie ich das schreiben soll.

    Hatte mich vertippt und meinte natürlich UserControl!

    Sind sogar Bilder mit im Anhang für das verständnis:)!