oAkeDCH
oAkeDCH

Reputation: 31

How to count all rows in a data table c#

So I am creating a messaging application for a college project and I have a database of Users in Access, I have linked the database correctly and can execute statements but I am struggling with one problem, how to count the number of rows in a data table.

In fact, all I want to do is to count the total number of users and my teacher told me to get the data into a DataTable and count the number of rows. However, no matter how many users I have in the database, it always returns as 2.

int UserCount = 0;

        using (OleDbConnection cuConn = new OleDbConnection())
        {
            cuConn.ConnectionString = @"DATASOURCE";
            string statement = "SELECT COUNT(*) FROM Users";

            OleDbDataAdapter da = new OleDbDataAdapter(statement, cuConn);
            DataTable Results = new DataTable();
            da.Fill(Results);
            if (Results.Rows.Count > 0)
            {
                UserCount = int.Parse(Results.Rows[0][0].ToString());
            }
        }

The above code is a copy of what I was sent by my teacher who said it would work. Any help would be appreciated.

Also, sorry if this is a waste of time, still getting used to this StackOverflow thing...

Upvotes: 1

Views: 12809

Answers (2)

Lei Yang
Lei Yang

Reputation: 4325

Try replace Users with [Users]? Because Users may be a key word of database. Also the simpler way to get aggregate numbers is by ExecuteScalar method.

    using (OleDbConnection cuConn = new OleDbConnection())
    {
        cuConn.ConnectionString = @"DATASOURCE";
        string statement = "SELECT COUNT(*) FROM [Users]";

        OleDbCommand cmd = new OleDbCommand (statement, cuConn);
        cuConn.Open();
        int count = (int)cmd.ExecuteScalar();
        if (count > 0)
        {
            //
        }
    }

Upvotes: 1

codestever
codestever

Reputation: 79

I successfully used your exact code (except the connection string) with sql server so maybe there is a problem with your @"DATASOURCE" or MS Access.

Upvotes: 0

Related Questions