Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Write to Access Database using C++ and OleDB connection [modified]

Write to Access Database using C++ and OleDB connection [modified]

Scheduled Pinned Locked Moved C / C++ / MFC
databasecsharpc++visual-studiocom
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Stefan Baens
    wrote on last edited by
    #1

    I am trying to put information in an access database file (mdb) with an oledb connection. Everything seems fine but no new information is added to the database at the end. This is the code I have now:

    double Tabel_Panelinfo(String^ item_id, String^ use, String^ type)
    {
    // returnwaarde initialiseren
    int dblID = 10;

    // Aanmaken logische naam voor connectie
    OleDbConnection^ myOleDbConnection = nullptr;
    try
    {
        // 1. Build OLE DB connection string for MS Access database
        OleDbConnectionStringBuilder^ connectionBuilder = gcnew OleDbConnectionStringBuilder();
        connectionBuilder->Provider = "Microsoft.Jet.OLEDB.4.0";
        connectionBuilder->DataSource = "D:\\\\Data\\\\Visual Studio 2005\\\\Projects\\\\VertexBDXML-RandekSPL728\\\\VertexBDXML-RandekSPL728\\\\Tabel-XML.mdb";
        
        // 2. Create OLE DB connection
        myOleDbConnection = gcnew OleDbConnection(connectionBuilder->ToString());
        
        // 3. Open OLE DB connection
        myOleDbConnection->Open();
    
    	// 4. create OLE DB DataAdapter
    	OleDbDataAdapter^ DataAdapter = gcnew OleDbDataAdapter("SELECT \* FROM tblPanel", myOleDbConnection);
    
        // 4a. Attach FillError and RowUpdated event handlers
        DataAdapter->FillError += gcnew FillErrorEventHandler(MyEventHandler::FillError);
        DataAdapter->RowUpdated += gcnew OleDbRowUpdatedEventHandler(MyEventHandler::RowUpdated);
    
        // 5. Create DataSet
        DataSet^ myDataSet = gcnew DataSet();
    
    	// 6. Dataset opvullen
    	DataAdapter->MissingSchemaAction = MissingSchemaAction::Add;
        DataAdapter->Fill(myDataSet, "tblPanel");
    
    	// 7. Waarde zoeken
    	DataRow^ row = myDataSet->Tables\["tblPanel"\]->NewRow();
    	// DataRow^ row = myDataSet->Tables\["tblPanel"\]->Rows->Find("1");
    	if (row != nullptr)
    	{
    		// 8. Datavelden invullen
    		// row\["ID"\] = dblID;
    		row\["item\_id"\] = item\_id;
    		row\["use"\] = use;
    		row\["type"\] = Convert::ToInt16(type);
    		// dblID = Convert::ToDouble(row\["ID"\]);
    
    		// 9. Data updaten
    		DataAdapter->Update(myDataSet, "tblPanel");
    	}
    }
    catch(Exception^ e)
    {
    	Console::WriteLine(e->Message);
    }
    finally
    {
        // Close OLE DB connection
        if ( myOleDbConnection != nullptr )
            myOleDbConnection->Close();
    }
    
    return dblID;
    

    }

    -- modified at 5:47 Friday 24th August, 2007 -- modified at 5:47 Friday 24th August, 2007 Stefan -- modified at 5:48 Friday 24th August, 2007

    H 1 Reply Last reply
    0
    • S Stefan Baens

      I am trying to put information in an access database file (mdb) with an oledb connection. Everything seems fine but no new information is added to the database at the end. This is the code I have now:

      double Tabel_Panelinfo(String^ item_id, String^ use, String^ type)
      {
      // returnwaarde initialiseren
      int dblID = 10;

      // Aanmaken logische naam voor connectie
      OleDbConnection^ myOleDbConnection = nullptr;
      try
      {
          // 1. Build OLE DB connection string for MS Access database
          OleDbConnectionStringBuilder^ connectionBuilder = gcnew OleDbConnectionStringBuilder();
          connectionBuilder->Provider = "Microsoft.Jet.OLEDB.4.0";
          connectionBuilder->DataSource = "D:\\\\Data\\\\Visual Studio 2005\\\\Projects\\\\VertexBDXML-RandekSPL728\\\\VertexBDXML-RandekSPL728\\\\Tabel-XML.mdb";
          
          // 2. Create OLE DB connection
          myOleDbConnection = gcnew OleDbConnection(connectionBuilder->ToString());
          
          // 3. Open OLE DB connection
          myOleDbConnection->Open();
      
      	// 4. create OLE DB DataAdapter
      	OleDbDataAdapter^ DataAdapter = gcnew OleDbDataAdapter("SELECT \* FROM tblPanel", myOleDbConnection);
      
          // 4a. Attach FillError and RowUpdated event handlers
          DataAdapter->FillError += gcnew FillErrorEventHandler(MyEventHandler::FillError);
          DataAdapter->RowUpdated += gcnew OleDbRowUpdatedEventHandler(MyEventHandler::RowUpdated);
      
          // 5. Create DataSet
          DataSet^ myDataSet = gcnew DataSet();
      
      	// 6. Dataset opvullen
      	DataAdapter->MissingSchemaAction = MissingSchemaAction::Add;
          DataAdapter->Fill(myDataSet, "tblPanel");
      
      	// 7. Waarde zoeken
      	DataRow^ row = myDataSet->Tables\["tblPanel"\]->NewRow();
      	// DataRow^ row = myDataSet->Tables\["tblPanel"\]->Rows->Find("1");
      	if (row != nullptr)
      	{
      		// 8. Datavelden invullen
      		// row\["ID"\] = dblID;
      		row\["item\_id"\] = item\_id;
      		row\["use"\] = use;
      		row\["type"\] = Convert::ToInt16(type);
      		// dblID = Convert::ToDouble(row\["ID"\]);
      
      		// 9. Data updaten
      		DataAdapter->Update(myDataSet, "tblPanel");
      	}
      }
      catch(Exception^ e)
      {
      	Console::WriteLine(e->Message);
      }
      finally
      {
          // Close OLE DB connection
          if ( myOleDbConnection != nullptr )
              myOleDbConnection->Close();
      }
      
      return dblID;
      

      }

      -- modified at 5:47 Friday 24th August, 2007 -- modified at 5:47 Friday 24th August, 2007 Stefan -- modified at 5:48 Friday 24th August, 2007

      H Offline
      H Offline
      Hamid Taebi
      wrote on last edited by
      #2

      Your code is managed it was better you asked on the correct forum (Managed) C++/CLI[^]


      WhiteSky


      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups