Über WindowsForm TextBox Datensatz ändern.

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von msdn_freak.

    Über WindowsForm TextBox Datensatz ändern.

    Hallo Jungs,

    wenn das Windows Formular startet wird ein Datensatz angezeigt:

    VB.NET-Quellcode

    1. Private Sub frm_hauptmenue_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. 'TODO: Diese Codezeile lädt Daten in die Tabelle "ToolDataSet.tbl_user". Sie können sie bei Bedarf verschieben oder entfernen.Me.Tbl_userTableAdapter.Fill(Me.ToolDataSet.tbl_user)
    3. End Sub

    was dieser code zu bedeuten hat, keine ahnung:

    VB.NET-Quellcode

    1. Private Sub FillByToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    2. TryMe.Tbl_userTableAdapter.FillBy(Me.ToolDataSet.tbl_user)Catch ex As System.Exception
    3. System.Windows.Forms.MessageBox.Show(ex.Message)
    4. End TryEnd Sub

    Aufjedenfall besteht die Tabelle aus folgenden Werten: vorname, nachname, strasse, plz, ort, tel, mob, email.
    Diese werden auch in der Tat beim Starten des Formulars angezeigt.
    Wenn man nun den Vornamen ändert soll sich auch der Vorname in der DB ändern. Zum Beispiel mit dem Ereignis LostFocus oder TextChange. Aber wie mach ich das dem TableAdapter, bzw. dem ToolDataSet verständlich???
    Bin Neueinsteiger in VB 2008 und hey, in VBA 6 (Access) finde mein aktuelles Problemchen echt EASY... *g*
    Aber in der Regel brauche ich nur einen Anstubser oder eine grobe Wegweisung und dann komm ich schon klar.
    Gruß Euer Freak
    ahoi,

    also textchange würd ich schonmal lassen
    wenn du die daten ändern willst müsstest du für access die datatable aktualisieren und an die db zurückschicken

    einfacher wäre es mit einem updatebefehl in einem command und den dann per executenonquery an die db zurückschießen
    da hatte ich aber glaub ich leichte probleme und ich weiß nicht ob es mit access zusammenhing da ich das bis jetzt nur mal testweise in c# probiert habe
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    *.sdf vb datenbank

    hmm ich habe bereits die access daten in die *.sdf datenbank importiert.

    also mir geht es nur darum wie ich einen update befehl bei textchange formuliere um den aktuell angezeigten datensatz im formular der vb internen datenbank (*.sdf) ändere.

    ich weiß nicht wo ich suchen soll. konfiguriert man das im "DataSet", "tableAdapter" oder im "PrivateSub" vom Textfeld mit dem Ereignis "TextChange". Oder gibt es irgendwo eine Einstellung bei DataBinding (textbox) oder auch in den Eigenschaften von DataSet oder tableAdaper?

    ich vermute es ist nur eine kleine update anweisung im privatesub der textbox notwendig mit dem ereignis textchange. *grübel* ?( 8|

    Gruß Freak

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

    nun dann im dataset
    du liest deine werte ins dataset und gibts das dann an die db zurück

    und wenn du das unbedingt im textchange machen willst dann natürlich im textchange event
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Manü schrieb:

    nun dann im dataset
    du liest deine werte ins dataset und gibts das dann an die db zurück
    okay. werd ich hinbekommen. also ich muss über das textchange werte an das dataset übergeben? 8| oh man das wird noch ein spaß. ich forste mich mal durch so´n paar beispiele durch.

    Manü schrieb:

    und wenn du das unbedingt im textchange machen willst dann natürlich im textchange event



    naja ich möchte mir einen button "save", bzw. "übernehmen" ersparen. ich komm sonst nicht mit dem platz hin. da eh nur ein datensatz in der angesprochenen tabelle user ist und ich nicht über eine .ini datei speichern will. dachte ich mir ich mach es über textchange.

    die eigenschaften das der "anwender" keine neuen datensätze anlegen kann, sondern nur den angezeigten ändern kann, sind bereits eingestellt.

    noch eine frage. ich habe ca. 18 tabellen. unten werden ja die einzelnen tableadapter und datasets für jede abfrage dargestellt (im formdesigner) das wird ab einer bestimmten menge sehr unübersichtlich. ?( wie geht man da vor? ein dataset mit allen möglichkeiten programmieren? oder macht man für jede abfrage ein eigenes dataset?

    wenns fertig ist und funktioniert, stell ich dann mal den quelltext rein ;) aber so grob hab ich´s verstanden

    Gruß Euer Freak & Vielen DANK! ^^

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „msdn_freak“ ()

    Galileo OpenBook Code

    Guten Abend Jungs,

    ich habe mich über Galileo Open Book informiert, wie man eine Verbindung zur Datenbank herstellt.

    Das Beispiel ist aber mit einer *.mdf Datenbank. Mein VB2008 Express hat mir aber eine *.sdf Datenbank angelegt. :huh:

    VB.NET-Quellcode

    1. Private Sub txt_vorname_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.ChangeUICues
    2. Dim strSQL As String = "UPDATE tbl_user SET vorname = '" + txt_vorname.Text + "'"
    3. Dim con As New SqlClient.SqlConnection
    4. Dim cmd As New SqlClient.SqlCommand
    5. Try
    6. con.ConnectionString = "Data Source=.\SQLEXPRESS;" _
    7. & "AttachDbFilename=C:\Dokumente und Einstellungen\Stefan\Eigene Dateien\Visual Studio 2008\Projects\Tool\Tool\Tool.sdf;" _
    8. & "Integrated Security=True;"
    9. cmd.Connection = con
    10. cmd.CommandText = strSQL
    11. con.Open()
    12. cmd.ExecuteReader()
    13. con.Close()
    14. Catch ex As Exception
    15. MsgBox(ex.Message)
    16. End Try
    17. End Sub


    tja aber ich bekomme eine Fehlermeldung. 8|

    Ist *.sdf überhaupt ne SQLEXPRESS datenbank?

    Gruß Freak
    Bilder
    • VB08_Datenbankverbindung_001.JPG

      17,51 kB, 668×126, 147 mal angesehen

    VB 2008 zerschossen!?!?

    Oh man, ich glaube ich hab mir die Installation zerschossen.

    Wenn ich eine Datenbank hinzufügen will kommt eine Fehlermeldung. :cursing:

    :wacko:
    Bilder
    • VB08_Programmprobleme_001.JPG

      6,92 kB, 282×119, 131 mal angesehen
    omg was wolltest du denn machen ? ;)

    an sich machst du es richtig wie der fehler zusatande kommt weiß ich jetzt nicht,
    das prob ist IMHO das textchange event weil du bei jedem buchstaben iene sqlverbindung öffnest und dein command an die db schießt
    das kann denke ich mal ziemlich an die ressourcen gehen
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Was ich gemacht habe... *g*

    Ich habe nur hier und da ein paar Namensänderungen (Datenbank, Pfad, etc.) durchgeführt, alles angepasst. Und jetzt kommt immer die Fehlermeldung: "Das Ereigniss-Protokoll ist voll." (siehe Screenshot oben)

    Habe das Projekt komplett gelöscht und ein neues angelegt. Sobald ich nun eine Datenbank hinzufügen will, kommt immer wieder diese Fehlermeldung. Nun werde ich heute Abend VB 2008 Express deinstallieren und neu installieren.

    Aber nochmal ne generelle Frage. Das Dataset was man erstellen kann, kann man doch auch dazu nutzen, in die Datenbank zu schreiben, oder? Daten Auslesen kann ich bereits über das Dataset.

    In Galileo OpenBook wird das auch nicht so richtig erklärt. :S

    Das Dataset erstellt doch bereits ne Verbindung mit der Datenbank. Vll. kam deshalb die Fehlermeldung (Siehe Screenshot noch weiter oben) das die Datenbank nicht geöffnet werden kann, da evtl. bereits schon eine Verbindung besteht.

    Gruß Freak
    das dataset öffnet keine verbindung mit der db dafür ist dien con.open zuständig evtl hast du irgendwo ein con.close vergessen
    am besten beim öffnen der connection immer abfragen ob die verbindung shcon offen ist

    VB.NET-Quellcode

    1. if con.state = connectionstate.closed then
    2. con.open
    3. end if
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    eigentlich ganz einfach...

    um ein einfaches datenbank formular zu erstellen wo man die daten in der datenbank ändern, hinzufügen und löschen kann.

    erster schritt: man muss eine datenbank in vb08 (*.sdf) erstellen. danach erstellt ihr dort eine tabelle.

    im dataset designer ziehst du die tabelle rein.

    in der windows forms ziehst du die einzelnen spalten der tabelle rein.

    oben in der form werden automatisch buttons hinterlegt, die es dann ermöglichen alle standartfunktionen daten, in einer datenbank, zu beeinflussen.

    ihr schaut dann einfach in den automatisch erstellten quelltext und passt diesen, wenn überhaupt notwendig auf eure bedürfnisse ein.

    ich denke so lernt man das am schnellsten. dann kann man auch präzisere fragen stellen wenn man irgendwo nicht weiterkommt.

    gruß euer freak :thumbsup:
    nochmal zur anmerkung

    dann kann man auch präzisere fragen stellen wenn man irgendwo nicht weiterkommt.

    das stimmt allerdings

    ich denke so lernt man das am schnellsten.

    das denke ich eher weniger

    da du den code mit dem "schönen" designer automatisch erstellen lässt
    hast du zu wenig überblick bzw einfluss auf die sache
    deswegen ist es immer vorteilhaft wenn man die sachen wirklich selbst programmiert
    sprich die anbindung von tabelleninhalten an ein steuerelement (zb gridview)
    und das zurückschießen von ändern über die execute-methoden
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    lucki lucki :)

    hi,

    naja das problem ist, das ich ein sehr neugieriger mensch bin. das heißt sobald was automatisch erstellt wird, gucke ich mir alle details an, die sich geändert haben.

    das automatisch erstellte reicht meistens nicht aus, um die anforderungen von heut zu tage zu erfüllen.

    ich werd mit euerer hilfe, msdn online und anderen forum, mein programm schon irgendwie so hinbekommen, das es den anforderungen gewachsen ist. ;)

    es ist ja nicht so das ich egoistisch bin, mein wissen teile ich gern.

    nun hab ich es geschafft mit dataset, tableadapter zu verstehen das ich individuell über mein eigenes layout die datenbank (SQLexpressCE) und deren inhalt steuern kann. :) 8o

    so ich hau mich jetzt ins bett... :thumbsup:

    bis die tage... euer freak