#include "stdafx.h" |
using namespace System; |
using namespace System::Data; |
using namespace System::Data::OleDb; |
ref struct MyEventHandler |
{ |
static void RowUpdated(Object^ sender, OleDbRowUpdatedEventArgs^ e) |
{ |
if ( e->Status == UpdateStatus::ErrorsOccurred ) |
throw "Row update failed!" ; |
} |
}; |
void main() |
{ |
OleDbConnection^ myConnection = nullptr; |
OleDbTransaction^ myTransaction = nullptr; |
|
try |
{ |
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->RowUpdated += gcnew OleDbRowUpdatedEventHandler(MyEventHandler::RowUpdated); |
|
DataSet^ myDataSet = gcnew DataSet(); |
dataAdapter->MissingSchemaAction = MissingSchemaAction::AddWithKey; |
dataAdapter->Fill(myDataSet); |
|
myTransaction = myConnection->BeginTransaction(); |
|
DataTable^ myTable = myDataSet->Tables[0]; |
|
DataRow^ row = myTable->Rows->Find( "Automatic" ); |
if ( row != nullptr ) |
row[ "Title" ] = "Automatic (Dance Mix)" ; |
row = myTable->Rows->Find( "EnTrance" ); |
if ( row != nullptr ) |
row[ "GenreName" ] = "Trance" ; |
|
dataAdapter->Update(myDataSet); |
myTransaction->Commit(); |
} |
catch (Exception^ e) |
{ |
Console::WriteLine(e->Message); |
if ( myTransaction != nullptr ) |
{ |
myTransaction->Rollback(); |
Console::WriteLine( "Transaction rolled back." ); |
} |
} |
finally |
{ |
myConnection->Close(); |
} |
} |
初级程序员
by: 云代码会员 发表于:2016-09-24 11:11:39 顶(0) | 踩(0) 回复
不错
回复评论