Visual C++ .NET/Database ADO.net/OleDbConnection
Database connection events
<source lang="csharp">
- 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 StateChange(Object^ sender, StateChangeEventArgs^ e) { Console::WriteLine(e->CurrentState.ToString()); }
}; void main() {
OleDbConnection^ myOleDbConnection = nullptr; SqlConnection^ mySqlConnection = nullptr; OleDbConnectionStringBuilder^ connectionBuilder = gcnew OleDbConnectionStringBuilder(); connectionBuilder->Provider = "Microsoft.Jet.OLEDB.4.0"; connectionBuilder->DataSource = "music.mdb"; myOleDbConnection = gcnew OleDbConnection(connectionBuilder->ToString()); myOleDbConnection->Open(); SqlConnectionStringBuilder^ connectionBuilder2 =gcnew SqlConnectionStringBuilder(); connectionBuilder2->DataSource = "localhost"; connectionBuilder2->InitialCatalog = "ultramax"; connectionBuilder2->UserID = "sa"; connectionBuilder2->Password = ""; mySqlConnection = gcnew SqlConnection(connectionBuilder2->ToString()); mySqlConnection->StateChange += gcnew StateChangeEventHandler(MyEventHandler::StateChange); mySqlConnection->Open(); Console::WriteLine("Database: {0}", mySqlConnection->Database); Console::WriteLine("DataSource: {0}", mySqlConnection->DataSource); Console::WriteLine("ServerVersion: {0}",mySqlConnection->ServerVersion); Console::WriteLine("Workstation ID: {0}",mySqlConnection->WorkstationId); myOleDbConnection->Close(); mySqlConnection->Close();
}
</source>
Database Events
<source lang="csharp">
- 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();
}
</source>