![]() |
Languages »
C++ / CLI »
General
Beginner
License: The Code Project Open License (CPOL)
OLE DB - First stepsBy Nishant SivakumarBasic introduction to using OLE DB to insert, update and read records from a database |
C++/CLI, VC7, Windows, .NET 1.0, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
This article intends to introduce you to using OLE DB for database access. It does this by showing you how to use OLE DB to insert records into a database and then read back those records. Before you start there are some things you need to do first, like creating an MDB file.
In .NET, connections to databases and queries are achieved through data
providers. The OLE DB .NET data provider is implemented through various classes
within the System::Data::OleDb namespace. In this article we only examine three
of these classes - OleDbConnection, OleDbCommand and
OleDbDataReader. The
OleDbConnection object represents a database connection. The OleDbCommand object
wraps an SQL command that is performed on a database connection. When we
are making an INSERT or an UPDATE query on a database table, those two are the
only classes we'll need. But when we are retrieving data from a table, we'll
also need to use the OleDbDataReader class. This class allows us to browse
through a row of records in a forward-only direction.
//Create the OleDbConnection object //and associate it with our database OleDbConnection* conn = new OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb"); //Open the database connection conn->Open(); //Create an OleDbCommand object and //pass it the SQL command and the OleDbConnection //object to use to connect to the database OleDbCommand* cmd = new OleDbCommand(sqlstr,conn); //Execute the SQL command cmd->ExecuteNonQuery(); //Close the connection to the database conn->Close();
Inserting records is the simpler of the two processes. We create a connection
using the OleDbConnection object, create an OleDbCommand
object and associate it with the OleDbConnection object. Now we
call the ExecuteNonQuery method, which will execute the SQL command
we had passed to the OleDbCommand constructor. We then close
the connection.
//Create the OleDbConnection object //and associate it with our database OleDbConnection* conn = new OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb"); //Open the database connection conn->Open(); //Create an OleDbCommand object and //pass it the SQL read query and the connection to use OleDbCommand* cmd = new OleDbCommand(sqlstr,conn); //Procure the OleDbDataReader object to browse the recordset OleDbDataReader* rdr = cmd->ExecuteReader(); //Keep reading records in the forward direction while (rdr->Read()) { //Use one of the various methods available to read the data //Eg:- GetValue, GetValues, Item etc. . . . . . . } //Close the connection to the database conn->Close();
This is basically the same as far as creating the OleDbConnection
and OleDbCommand objects are concerned. But instead of
calling ExecuteNonQuery directly, we call ExecuteReader
which will return a OleDbDataReader object. We can use this
OleDbDataReader object to browse through the recordset. Keep calling
Read
which will return false when it has finished the whole recordset. There are
several ways to read from a recordset but I prefer get_Item which
allows you to specify a field name opposed to other functions like
GetValue which require us to pass the index of the field in the table
which is a bad method in my opinion.
Console::WriteLine(rdr->get_Item("FullName"));
There is a sequel to this article on the use of bound controls with OLE DB which you can find here.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 1 Dec 2001 Editor: Nishant Sivakumar |
Copyright 2001 by Nishant Sivakumar Everything else Copyright © CodeProject, 1999-2009 Web17 | Advertise on the Code Project |