[erledigt] Access & ADO.NET : Einen Datensatz ändern



  • Hallo alle zusammen,

    ich habe eine Verbindung zu einer Access-Datenbank hergestellt, benötigte Daten in ein DataSet ausgelesen und dann noch nach meinen Wünschen weiterverarbeitet in ein zweites DataSet.

    Jetzt will ich einen per Hand geänderten Wert in die Datenbank zurückschreiben.

    Allerdings will ich nicht die Update-Methode für dataSets benutzen, da ich wirklich nur diesen einen Wert abändern will (weil andere Änderungen eventuell verworfen werden sollen) und das zweite DataSet, das ich händisch bearbeitet habe, nur teile des eigentlichen (ersten) DataSets enthält.
    Einen passenden SQL-Befehl habe ich auch schon gebastelt, nur leider weiß ich nicht, wie ich ihn aufrufen kann:

    Befehl = L"UPDATE Abfr_Texttabelle_" + label7->Text + " SET " 
    				+ label4->Text + " = '" + textBox2->Text +"' WHERE Symbol = '" + label5->Text + "';";
    
    OleDbConnection ^verbindung = gcnew OleDbConnection(verbindungsstr);
    dataSet1 = gcnew DataSet();
    dbAdapter = gcnew OleDbDataAdapter(L"SELECT Symbol* FROM Abfr_Texttabelle_1", verbindung);
    dbAdapter->Fill(dataSet1, "Daten");
    ...
    

    Vielen Dank im Voraus



  • Wenn Du schon den SQL-String zusammengebaut hast, kannst Du doch OleDbCommand(sqlstring, connection) verwenden. Und dann von diesem Cmd-objekt ExecuteNonQuery() aufrufen.



  • witte schrieb:

    Wenn Du schon den SQL-String zusammengebaut hast, kannst Du doch OleDbCommand(sqlstring, connection) verwenden. Und dann von diesem Cmd-objekt ExecuteNonQuery() aufrufen.

    Kann vielleicht zu dieser Lösung mal jemand ein kleines Beispiel posten, ich bekomme da nur Fehlermeldungen:

    1>c:\...\mistranslationdb\Form1.h(957) : error C2248: "System::Data::OleDb::OleDbCommand::OleDbCommand": Kein Zugriff auf private Member, dessen Deklaration in der System::Data::OleDb::OleDbCommand-Klasse erfolgte.



  • Zeige den Code..



  • Hat sich erledigt, hab es doch endlich geschaft. Danke nochmals.

    Meine Programm:

    OleDbConnection ^connect;
    OleDbCommand ^befehl;
    OleDbDataReader ^leser;
    ...
    String ^Befehlstring;
    Befehlstring = L"UPDATE Abfr_Texttabelle_" + label7->Text + " SET " 
    	+ label4->Text + " = '" + textBox2->Text +"' WHERE Symbol = '" + label5->Text + "';";
    connect = nullptr;
    befehl = nullptr;
    leser = nullptr;
    connect = gcnew OleDbConnection(verbindungsstr);
    connect->Open();
    befehl = connect->CreateCommand();
    befehl->CommandText = Befehlstring;
    leser = befehl->ExecuteReader();
    if (leser != nullptr)
        leser->Close();
    if (connect != nullptr)
        connect->Close();
    

Anmelden zum Antworten