
#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) 回复
不错
回复评论