none
Speichern in Access Datenbank RRS feed

  • Frage

  • Hallo zusammen,

    Ich habe eine DataGridView erstellt mit einer NavigatorLeiste, dort habe ich einen Speicher Button erstellt.

    Der Button enthält folgenden Code:

    private void speichernToolStripButton1_Click(object sender, EventArgs e)
        {
          //Änderungen in DataSet in Datenbank schreiben
          tblFassdatenBindingSource.EndEdit();
          tbl_FassdatenTableAdapter.Update(fassmessanlageDataSet.tbl_Fassdaten);
          fassmessanlageDataSet.AcceptChanges();
        }

    Leider wird der Wert nicht in die Datenbank geschrieben.

    Woran liegt das?

    Muss ich vlt. noch manuelle Einstellungen in Visual Studio beachten?

    Gruß Stefan

    Samstag, 30. Oktober 2010 21:25

Antworten

  • Hallo Stefan,

    Wenn ich den Speicher Button betätige und im Anschluss das Debugging beende und wieder neu aufrufe, ist die neue Eingabe gespeichert, schau ich aber in meiner DB nach ist dort der neue Wert nicht gespeichert, eine Fehlermeldung erscheint nicht beim Abspeichern.

    nur damit ich das nicht falsch verstehe:

    Du rufst deine Anwendung auf, veränderst die Daten, drückst den Button "Speichern" und schließt danach die komplette Anwendung. Soweit richtig?

    Wenn die Anwendung dann neu aufgerufen wird, sind die gespeicherten Daten in deiner Anwendung sichtbar?

    Falls das so ist, werden die Daten auch in der Datenbank gespeichert. Fragt sich nur, ob Du die richtige Access Datenbank anschaust, wenn Du prüfen willst, ob diese dort eingetragen wurden. Ab und an kann auch vorkommen, dass die Änderungen nicht sofort direkt in Access sichtbar sind. In dem Fall solltest Du deine Anwendung nach dem Speichern mal komplett schließen und dann per Access schauen, ob die Änderungen vorhanden sind. Für den Fall, dass deine Anwendung dann trotzdem die geänderten Daten anzeigt, deine Access DB aber nicht, solltest Du wirklich prüfen, ob Du die richtige Datenbank ansprichst :)

    Eigenschaften DataSet.xsd

    Edit: Öhm. Was soll die DataSet.xsd hier machen?

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 31. Oktober 2010 12:25
    Moderator
  • Hallo Stefan,

    danke für deinen Tip.

    Ich hatte in VS 2008 Debuggt, als ich dort den Wert abspeicherte klappte es nicht.

    Jetzt habe ich aber die in dem Ordner ../obj/Debug/ die Anwendungsdatei (.exe) aufgerufen und einen Testwert abgespeichert.

    Jetzt hat es geklappt.

    Also beim Debuggen in VS schrieb das Programm die Daten nicht in die Datenbank.

    Erst beim Ausführen der .exe-Datei klappte es.

    Ciao Stefan

    Montag, 1. November 2010 11:30

Alle Antworten

  • Hallo Stefan,

    Leider wird der Wert nicht in die Datenbank geschrieben.

    Woran liegt das?

    was genau passiert denn? Kommt eine Fehlermeldung? Falls ja, welche genau? (Bitte die vollständige Fehlermeldung und den Code, bei dem diese ausgelöst wird, posten)

    Sind die Änderungen vor dem Aufruf der Update-Methode auch wirklich in deiner DataTable enthalten?

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Samstag, 30. Oktober 2010 23:17
    Moderator
  • Wenn ich den Speicher Button betätige und im Anschluss das Debugging beende und wieder neu aufrufe, ist die neue Eingabe gespeichert, schau ich aber in meiner DB nach ist dort der neue Wert nicht gespeichert, eine Fehlermeldung erscheint nicht beim Abspeichern.

    Ich vermute, das die Eingabe nur im DataSet gespeichert ist aber nicht in die DB schreibt.

    Kann das sein?

    Aber ich weiß leider nicht, welche Einstellungen ich vornehmen muss und wo.

    Eigenschaften DataSet.xsd

     Buildvorgang: Keine

    In Ausgabeverzeichnis kopieren: Kopieren, wenn neuer

    Hier noch der Code für die DataGridView zu füllen:

     private void Parameter_Load(object sender, EventArgs e) 
    
    { 
    
    	this.tbl_FassdatenTableAdapter.Fill(this.fassmessanlageDataSet.tbl_Fassdaten); 
    
    }
    
    

    Danke schonmal im Vorraus

    Gruß Stefan

    Sonntag, 31. Oktober 2010 12:11
  • Hallo Stefan,

    Wenn ich den Speicher Button betätige und im Anschluss das Debugging beende und wieder neu aufrufe, ist die neue Eingabe gespeichert, schau ich aber in meiner DB nach ist dort der neue Wert nicht gespeichert, eine Fehlermeldung erscheint nicht beim Abspeichern.

    nur damit ich das nicht falsch verstehe:

    Du rufst deine Anwendung auf, veränderst die Daten, drückst den Button "Speichern" und schließt danach die komplette Anwendung. Soweit richtig?

    Wenn die Anwendung dann neu aufgerufen wird, sind die gespeicherten Daten in deiner Anwendung sichtbar?

    Falls das so ist, werden die Daten auch in der Datenbank gespeichert. Fragt sich nur, ob Du die richtige Access Datenbank anschaust, wenn Du prüfen willst, ob diese dort eingetragen wurden. Ab und an kann auch vorkommen, dass die Änderungen nicht sofort direkt in Access sichtbar sind. In dem Fall solltest Du deine Anwendung nach dem Speichern mal komplett schließen und dann per Access schauen, ob die Änderungen vorhanden sind. Für den Fall, dass deine Anwendung dann trotzdem die geänderten Daten anzeigt, deine Access DB aber nicht, solltest Du wirklich prüfen, ob Du die richtige Datenbank ansprichst :)

    Eigenschaften DataSet.xsd

    Edit: Öhm. Was soll die DataSet.xsd hier machen?

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 31. Oktober 2010 12:25
    Moderator
  • Hallo Stefan,

    danke für deinen Tip.

    Ich hatte in VS 2008 Debuggt, als ich dort den Wert abspeicherte klappte es nicht.

    Jetzt habe ich aber die in dem Ordner ../obj/Debug/ die Anwendungsdatei (.exe) aufgerufen und einen Testwert abgespeichert.

    Jetzt hat es geklappt.

    Also beim Debuggen in VS schrieb das Programm die Daten nicht in die Datenbank.

    Erst beim Ausführen der .exe-Datei klappte es.

    Ciao Stefan

    Montag, 1. November 2010 11:30