Visual C++ .NET/Database ADO.net/OleDbConnection — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 15:31, 26 мая 2010
Database connection 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 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();
}
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();
}