1
Answer

ExecuteScalar returns null.

Ask a question
Hi, i am facing a problem. i want to retrieve a query result from my database, but my query happeneds to return null, but i wrote a method using ExecuteScalar to retrive the value, but if the qurey return null, it will be caught by the catch (Exception ex){} part. How should i go about it? could someone please advice me?

// execute a select command and return a single result as a string
    public static string ExecuteScalar(DbCommand command)
    {
        // The value to be returned 
        string value = "";
        // Execute the command making sure the connection gets closed in the end
        try
        {
            // Open the connection of the command
            command.Connection.Open();
            // Execute the command and get the number of affected rows
            value = command.ExecuteScalar().ToString();
         
        }
        catch (Exception ex)
        {
            //Log eventual errors and rethrow them
            throw ex;
        }
        finally
        {
            // Close the connection
            command.Connection.Close();
        }
        // return the result
        return value;


However i got another method which does select query that returns a datatable. But i don't know how retrieve a row out from a datatable, For example using a datareader will be like dreader[0].ToString. But in datatable's case how should i do that? Can someone please advice me thanks..

Code:
public static DataTable ExecuteSelectCommand(DbCommand command)
    {
        // The DataTable to be returned 
        DataTable table;
        // Execute the command making sure the connection gets closed in the end
        try
        {
            // Open the data connection 
            command.Connection.Open();
            // Execute the command and save the results in a DataTable
            DbDataReader reader = command.ExecuteReader();
            table = new DataTable();
            table.Load(reader);
            // Close the reader 
            reader.Close();
        }
        catch (Exception ex)
        {
            //Utilities.SendErrorLogEmail(ex);
            throw ex;
        }
        finally
        {
            // Close the connection
            command.Connection.Close();
        }
        return table;
    }

Answers (1)