mustericek storedprocederu mu?

Parametre göndererek sql'den veri çekebilmen için basit bir örnek yazıyorum.
List<SqlParameter> sp = new List<SqlParameter>();
            sp.Add(new SqlParameter("@kategoriId", SqlDbType.Int) { Value = _kategoriId });
            try
            {
                DataTable dt = ReturnDT("mustericek", sp.ToArray());
                if (dt != null && dt.Rows.Count > 0)
                { return dt; }
                else { return null; }
            }
            catch (Exception ex)
            {
                string error = "error" + ex.Message;
                return null;
            }

public DataTable ReturnDT(string sp, params SqlParameter[] sqlParam)
        {
            DataTable dt = new DataTable();
            SqlConnection conn = new SqlConnection(connection);
            SqlCommand cmd = new SqlCommand(sp, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Clear();
            if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
                conn.Open();

            try
            {
                if (sqlParam != null)
                {
                    cmd.Parameters.AddRange(sqlParam);
                }

                SqlDataAdapter da = new SqlDataAdapter(cmd);
                SqlDataReader dr = cmd.ExecuteReader();
                dt.Load(dr);
                return dt;
            }
            catch (Exception ex)
            {
                throw new Exception("Error: " + ex.Message);
            }
            finally
            {
                cmd.Dispose();
                conn.Close();
            }
        }