Database Events : OleDbConnection « Database ADO.net « Visual C++ .NET






Database Events

 

#include "stdafx.h"

using namespace System;
using namespace System::Data;
using namespace System::Data::OleDb;
using namespace System::Data::SqlClient;

ref struct MyEventHandler{
    static void FillError(Object^ sender, FillErrorEventArgs^ e)
    {
        e->Continue = true;
    }
    static void RowUpdated(Object^ sender, OleDbRowUpdatedEventArgs^ e)
    {
        if ( e->Status == UpdateStatus::ErrorsOccurred )
        {
            e->Status = UpdateStatus::SkipCurrentRow;
            Console::WriteLine(e->Row[e->Row->Table->PrimaryKey[0]->ColumnName]);
        }
    }
};

void main(){
    OleDbConnection^ myConnection = nullptr;
    myConnection = gcnew OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Music.mdb");
    myConnection->Open();
    OleDbDataAdapter^ dataAdapter = gcnew OleDbDataAdapter("SELECT * FROM Music", myConnection);
    OleDbCommandBuilder^ commandBuilder = gcnew OleDbCommandBuilder(dataAdapter);
    dataAdapter->UpdateCommand = commandBuilder->GetUpdateCommand();
    dataAdapter->FillError += gcnew FillErrorEventHandler(MyEventHandler::FillError);
    dataAdapter->RowUpdated += gcnew OleDbRowUpdatedEventHandler(MyEventHandler::RowUpdated);
    DataSet^ myDataSet = gcnew DataSet();
    dataAdapter->MissingSchemaAction = MissingSchemaAction::AddWithKey;
    dataAdapter->Fill(myDataSet);
        
    DataTable^ MyTable = myDataSet->Tables[0];        
    DataRow^ row = MyTable->Rows->Find("EnTrance");
        
    if ( row != nullptr )
       row["GenreName"] = "T";
        
    row = MyTable->Rows->Find("Automatic");
    if ( row != nullptr ){
       row["Title"] = "your value";
       dataAdapter->Update(myDataSet);
    }
    myConnection->Close();
}

   
  








Related examples in the same category

1.Database connection events