Letzter neu angelegter Datensatz wird nicht richtig angezeigt



  • Hallo zusammen,

    ich habe ein Problem. Ich habe eine Datenbank über DataSet, BindingSource und DataAdapter angebunden. An die BindingSource habe ich dann ein paar TextBoxen gebunden. Darüber Filter ich mir dann die entsprechenden Datensätze raus. Das funktioniert auch wunderbar. Nur alle neu angelegten Datensätze sind erst nach einem Programmneustart sichtbar. Woran kann das liegen? Der Datensatz ist in der Datenbank vorhanden. Er wird nur nicht in der (an die BindingSource gebundene) TextBox angezeigt. Eine Fehlermeldung kommt auch nicht? Muss ich irgendwas aktualisieren? Zum speichern habe ich natürlich den DataAdapter "updaten lassen".

    Vielen Dank schon mal im Voraus!!!
    Gruß



  • this->Validate();
    this->offeneRgBindingSource->EndEdit();
    this->offeneRgTableAdapter->Update(this->invoiceManager1_0DataSet->OffeneRg);
    

    So soll es gehen....

    Ach so, gleiche bitte offeneRgBindingSource, offeneRgTableAdapter, invoiceManager1_0DataSet und OffeneRg Deinem Code an...



  • Hi,

    mein Code sieht in dem Bereich so aus:

    try{
    			 this->Validate();
    			 bSourceKundendaten->EndEdit();			 
    			 dbAdapterKundendaten->Update(dataSetKundendaten->Tables["aKundendaten"]);
    
    			 MessageBox::Show("Daten gesichert!","Information",MessageBoxButtons::OK,MessageBoxIcon::Information);
    			 }
    			 catch(...){
    				 MessageBox::Show("Fehler beim speichern!\nDaten wurden nicht gespeichert!","Achtung!",MessageBoxButtons::OK,MessageBoxIcon::Error);
    				 return;
    			 }
    

    Das Problem ist aber nicht gelöst. Sobald ich im BindingSource nach dem neu angelegten Datensatz filtern will zeigt er mir nur leere TextBoxen. Nach einem Neustart des Programms kann ich diese aber suchen und anzeigen...

    Habs auch schon mit

    bSourceKundendaten->ResetCurrentItem
    

    und mit

    textBox->ResetText
    

    versucht.

    Irgendwie komm ich da nicht weiter...

    Ich vermute, dass ich irgendwas an der Datenbankanbindung noch "updaten" muss... aber was und wie?



  • Warum aktualisierst Du nicht die ganze DB?
    Warum nur die Tabelle?



  • Weil ich nur in dieser Tabelle Änderungen vorgenommen habe. Dann muss ich doch nicht die ganze DB aktualisieren oder? Aber probieren werd ich es mal...

    Allerdings glaube ich nicht mehr, dass es daran liegt. Denn die Daten werden in die Tabelle geschrieben. Aber die textBoxen zeigen nicht den Datensatz an... gibts vielleicht auch ne Funktion, die die TextBoxen aktualisiert. Mit ResetBinding funktionierts nicht, weil dann der erste Datensatz einer Tabelle angezeigt wird...



  • hallo ! wie schaffe ich es denn, das mein einzelformular zum abspeichern von daten wie name, vorname, strasse, plz, ort usw.. bei Unvollständigkeit die Datensätze beim Drücken des Speichern-Buttons nicht speichert. Bei mir speichert der Button trotzdem alles, auch wenn im Ort z.B. nichts drinsteht. Beim Formular gibt es auch keine Methode DataError zur Lösung des Problems. Beim Drücken des speicher-Buttons wird übrigens diese Methode aufgerufen:

    private: System::Void kundenBindingNavigatorSaveItem_Click(System::Object^ sender, System::EventArgs^ e) {
    try {
    this->Validate();
    this->kundenBindingSource->EndEdit();
    this->kundenTableAdapter->Update(this->minidbDataSet->kunden);
    }
    catch (...) {
    MessageBox::Show("Beim Speichern ist ein Fehler aufgetreten!\nBitte überprüfen Sie Ihre Eingaben.", "Fehler", MessageBoxButtons::OK, MessageBoxIcon::Error);
    }

    wie kann ich das jetzt lösen ? hab schon viel ausprobiert.... mein Formular heisst übrigens kEinzel

    danke



  • Hi,

    wenn ich das richitg verstanden habe, dann wird immer das gespeichert, was du an das bindingSource anbindest... Du müsstest dann also die Datenbindung lösen...

    Allerdings ist doch in der Datenbank dann ein Feld "Ort" vorhanden. Spätestens wenn du dann die Datenbank "updatest" käme die Fehlermeldung. Warum ist es denn so schlimm das Feld in der Datenbank einfach leer zu lassen? Wenn du in der Datenbank bei der Definition angibst, dass NULL zugelassen ist dürfte doch alles in Ordnung sein oder?

    Gruß
    krare



  • hallo und danke ! habs alleine hingekriegt



  • schön. Aber was ist mit meinem Problem? Hat da keiner ne Idee?


Anmelden zum Antworten