Search code examples
asp.netdatabasecode-reuse

Reusable code to retrieve data


i have found an very good method for retrieving any result set from the database just by specifying the stored procedure name.i think the code is very much reusable.code is as follows

using System.Data;
using System.Data.SqlClient;

private DataSet GetFreshData(string sprocName)
{
    using ( SqlConnection conn = new SqlConnection() )
    {
        using ( SqlDataAdapter da = new SqlDataAdapter() )
        {        
            da.SelectCommand = new SqlCommand();
            da.SelectCommand.CommandText = sprocName;
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.SelectCommand.Connection = conn;

            DataSet ds = new DataSet();

            try
            {
                da.SelectCommand.Connection.Open();
                da.Fill(ds);
                da.SelectCommand.Connection.Close();
            }
            catch
            {
                return null;
            }
            finally
            {
                // do other things...calling Close() or Dispose() 
                // for SqlConnection or SqlDataAdapter objects not necessary
                // as its taken care of in the nested "using" statements
            }

            return ds;
        }
    }
} 

my question is can someone suggest a modification to this method when the stored procedure need to specify several parameters


Solution

  • Easy! :) take a SqlParameter[] as the second argument to the function.

    Then make sure da.SelectCommand.Parameters is filled with the list of SqlParameter objects in the SqlParameter[]