?
Solved

How do I find the record count using Ole in C#?

Posted on 2004-08-28
8
Medium Priority
?
2,858 Views
Last Modified: 2012-06-27
Hi,

I'm using OleDbConnection and OleDbCommand objects, but seem to have forgotten how to check the record count.  Do I use the OleDbDataReader?

Thanks.
0
Comment
Question by:ba272
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 11924776
Hello
  Do it using Sql statement as "Select Count(*) from mytable where ...."

using OleDBCommand and call ExecuteScalar method, which return the first value, this way is the fastest and give you the best performance, other way like filling Dataset will require from you to return all records to know it's count

HTH

Regards,
Mohammed
0
 
LVL 10

Expert Comment

by:123654789987
ID: 11928835

DataSet dataset1 = SqlCommand.ExecuteDataset();

int recordCount;

recordCount = dataset1.Tables[0].rows.count();



0
 
LVL 10

Accepted Solution

by:
123654789987 earned 1000 total points
ID: 11928840
Sorry.. I have mentioned the command for SqlConnection .For OledbConnection it has to be

DataSet dataset1 = OleDbCommand.ExecuteDataset();

int recordCount;

recordCount = dataset1.Tables[0].rows.count();
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 11928872
if you have 1 million records, you will fill the dataset with the Million records to get the count???

using OleDbDataReader will not help in that, as I said before using select count(*) is better
0
 
LVL 10

Expert Comment

by:123654789987
ID: 11928929
If the question is about just getting the Count of records then your solution is acceptable. But if the user wants to use the data from a particular table then why should he fire a separate query to get the count when the data has to be retrieved from the table.

I don't know what the requirement is exactly so let ba272 deceide based on his requirment
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 11928934
he already mentioned that he used OleDbConnection and OleDbCommand
0
 

Author Comment

by:ba272
ID: 11936256
I actually like Mohammed's approach, since it would empower me to do many more kinds of things than just get a row count.  I could use SQL to retrieve anything I want, and I'm sure the opportunity will arise.  But I don't know how to actually get a value back when I execute the SQL command.  Here's how far I've gotten...

OleDbConnection conn1 = new OleDbConnection();
conn1.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
              @"Data source=c:\data\datafile.mdb";

OleDbCommand dbSelectCommand1 = new OleDbCommand();
dbSelectCommand1.Connection = conn1;
string sql;
sql = "SELECT COUNT(*) FROM DataTable";
dbSelectCommand1. CommandText = sql;                        
OleDbDataReader reader1 = dbSelectCommand1.ExecuteReader();      

But where would I actually get the return value?  I'd most like an answer to this question.

I also did try the following approach to getting a row count, but the compiler would not swallow it.  I must have either done something wrong, or this would require the discussion of DataSets, which I don't have time to learn about at the moment.  

DataSet dataset1 = OleDbCommand.ExecuteDataset();


But the return value for an SQL intersts me greatly.  If anyone has the answer at their fingertips, I'd love to hear from you.


Thanks.
0
 
LVL 4

Expert Comment

by:Jeremy Daley
ID: 21065041
I'm simply not seeing an executeDataSet() method in .NET.

to get the row count, i've simply done this:

OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=zipcodes.mdb";
conn.Open();
OleDbCommand cmd = new OleDbCommand("Select Count(*) FROM Zips", conn);
int recordCount = (Int32)cmd.ExecuteScalar();

Open in new window

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question