#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();
}
|