How do I retrieve the result of an ADO.NET SqlCommand?

asp.net, c#, select, sql-server

Solution

Note that you must open the connection and execute the command before you can access the result of the SQL query. `ExecuteScalar` returns a single result value (different methods must be used if your query will return an multiple columns and / or multiple rows).

Notice the use of the `using` construct, which will safely close and dispose of the connection.

string selectTopics = "select count(*) from topics";
// Define the ADO.NET Objects
using (SqlConnection con = new SqlConnection(connectionString))
{
   SqlCommand topiccmd = new SqlCommand(selectTopics, con);
   con.Open();
   int numrows = (int)topiccmd.ExecuteScalar();
   if (numrows == 0)
    {
        noTopics.Visible = true;
        topics.Visible = false;
    }
}

Problem

I'm using ASP.NET and I want to find the amount of rows in my table. I know this is the SQL code: `select count(*) from topics`, but how do I get that to display as a number? All I want to do is run that code and if it = 0 display one thing but if it's more than 0 display something else. This is what I have so far: ``` string selectTopics = "select count(*) from topics"; // Define the ADO.NET Objects SqlConnection con = new SqlConnection(connectionString); SqlCommand topiccmd = new SqlCommand(selectTopics, con); if (topiccmd == 0) { noTopics.Visible = true; topics.Visible = false; } ``` What am I missing?

Original source

Related problems