How do I get the number of rows returned from a Microsoft SQL Query in C#?
How do I get the number of rows returned from a SQL Query in C#?
Having used other languages where this is much simpler, I was surprised at how “not simple” this was in C#. I expected it to be a little more complex than in some scripting language such as PHP, but it was way more complex.
Here is how I do it:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace CountRows
{
class Program
{
static void Main(string[] args)
{
// Create a string to hold the database connection string
string sdwConnectionString = @"Data Source = ServerName; user id=UserName; password=P@sswd!; Initial Catalog = DatabaseName;";
// Create a string to hold the database connection string
string query = "SELECT * FROM MyTable";
// Pass both strings to a new SqlCommand object.
SqlCommand queryCommand = new SqlCommand(query, sdwDBConnection);
// Create a SqlDataReader
SqlDataReader queryCommandReader = queryCommand.ExecuteReader();
// Create a DataTable object to hold all the data returned by the query.
DataTable dataTable = new DataTable();
dataTable.Load(queryCommandReader);
// The DataTable object has a nice DataTable.Rows.Count property that returns the row count.
int rowCount = rowCount = dataTable.Rows.Count;
}
}
}
Now doing it this way, you also have the data available in the DataTable dataTable object so you don’t have to go to the database and get it again.
