Announcement

Collapse
No announcement yet.

Datensatz ändern in Access-DB

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datensatz ändern in Access-DB

    Hallo zusammen

    Ich versuche per ADO.NET und OLEDBConnection einen Datensatz in einer Access Tabelle zu ändern. Habe aber keinen Erfolg.

    Kann mir jemand Tips geben? Vielen Dank

  • #2
    Hallo Manfred,

    was funktioniert denn genau nicht? Bekommst du eine aussagekärftige <b>Fehlermeldung</b>, mit der man dir hier weiterhelfen könnte? Normalerweise musst du nur eine Connection öffnen, Update-Kommando generieren und dieses dann absetzen

    Comment


    • #3
      Hallo,

      mit ADO.NET hat man die Qual der Wahl zwischen 2 unterschiedlichen Zugriffs-Optionen für eine ACCESS-Datenbank:<br>
      a) OleDbCommand + OleDbDataReader für den Lesezugriff und OleDbCommand für die UPDATE-Anweisung, oder <br>
      b) OleDbDataAdapter + DataSet für Lese-/Updatezugriffe

      Ein Beispiel für C# (normale Windows-Anwendung) könnte so aussehen:
      <pre>
      string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database\\Nordwind.mdb";
      string strAccessSelect = "SELECT [Personal-Nr], Nachname, Vorname FROM [Personal] WHERE [Personal-Nr] = 1";
      string sValue;
      OleDbConnection aAccessConn = new OleDbConnection(strAccessConn);
      OleDbCommand aAccessCommand = new OleDbCommand(strAccessSelect,aAccessConn);
      OleDbDataReader aReader ;
      aAccessConn.Open();
      try
      {
      aReader = aAccessCommand.ExecuteReader();
      aReader.Read();
      sValue = aReader["Nachname"].ToString();
      // Schritt 1: Alten Wert "Davolio" auslesen
      aReader.Close();
      MessageBox.Show(sValue, "Nachname", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
      // Schritt 2: Wert ändern
      string sUpdSQL = "UPDATE [Personal] SET Nachname = 'Neu' WHERE [Personal-Nr] = 1";
      int iRowsAffeced;
      OleDbCommand aUpdCmd = new OleDbCommand(sUpdSQL,aAccessConn);
      iRowsAffeced = aUpdCmd.ExecuteNonQuery();
      MessageBox.Show(iRowsAffeced.ToString(), "Update", MessageBoxButtons.OK, MessageBoxIcon.Information);
      }
      finally
      {
      aAccessConn.Close();
      }
      </pre&gt

      Comment

      Working...
      X