public static clsProduto getInstance()
        {
            if (referencia == null)
            {
                referencia = new clsProduto();
            }

            return(referencia);
        }
        public static List <clsProduto> SelecionarProdutoID(int idProduto)
        {
            string sql = @"SELECT idProduto, nomeProduto, descProduto, precProduto, descontoPromocao, P.idCategoria, nomeCategoria,  ativoProduto = CONVERT(BIT,CASE WHEN ATIVOPRODUTO NOT IN (0,1) THEN 0 ELSE ATIVOPRODUTO END), idUsuario, qtdMinEstoque FROM dbo.Produto P INNER JOIN dbo.Categoria C
                         ON P.idCategoria = C.idCategoria WHERE idProduto = @idProduto";

            clsConexao    conexao = new clsConexao();
            SqlConnection cn      = conexao.Conectar();
            SqlCommand    cmd     = cn.CreateCommand();

            cmd.CommandText = sql;

            cmd.Parameters.Add("@idProduto", SqlDbType.Int).Value = idProduto;

            SqlDataReader     dr      = cmd.ExecuteReader();
            List <clsProduto> Produto = new List <clsProduto>();

            while (dr.Read())
            {
                clsProduto C = new clsProduto();

                if (!dr.IsDBNull(dr.GetOrdinal("idProduto")))
                {
                    C.idProduto = dr.GetInt32(dr.GetOrdinal("idProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("nomeProduto")))
                {
                    C.nomeProduto = dr.GetString(dr.GetOrdinal("nomeProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("descProduto")))
                {
                    C.descProduto = dr.GetString(dr.GetOrdinal("descProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("precProduto")))
                {
                    C.precProduto = dr.GetDecimal(dr.GetOrdinal("precProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("descontoPromocao")))
                {
                    C.descontoPromocao = dr.GetDecimal(dr.GetOrdinal("descontoPromocao"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("idCategoria")))
                {
                    C.idCategoria = dr.GetInt32(dr.GetOrdinal("idCategoria"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("ativoProduto")))
                {
                    C.ativoProduto = dr.GetBoolean(dr.GetOrdinal("ativoProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("idUsuario")))
                {
                    C.idUsuario = dr.GetInt32(dr.GetOrdinal("idUsuario"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("qtdMinEstoque")))
                {
                    C.qtdMinEstoque = dr.GetInt32(dr.GetOrdinal("qtdMinEstoque"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("nomeCategoria")))
                {
                    C.nomeCategoria = dr.GetString(dr.GetOrdinal("nomeCategoria"));
                }

                Produto.Add(C);
            }

            return(Produto);
        }
        public static List <clsProduto> SelecionarProduto()
        {
            string        sql     = "SELECT idProduto,nomeProduto,descProduto,precProduto,descontoPromocao,P.IDCategoria, nomeCategoria, ativoProduto = CONVERT(BIT,CASE WHEN ATIVOPRODUTO NOT IN (0,1) THEN 0 ELSE ATIVOPRODUTO END), idUsuario, qtdMinEstoque, imagem FROM dbo.Produto P INNER JOIN dbo.Categoria C ON P.idCategoria = C.idCategoria";
            clsConexao    conexao = new clsConexao();
            SqlConnection cn      = conexao.Conectar();
            SqlCommand    cmd     = cn.CreateCommand();

            cmd.CommandText = sql;

            SqlDataReader     dr      = cmd.ExecuteReader();
            List <clsProduto> Produto = new List <clsProduto>();

            while (dr.Read())
            {
                clsProduto C = new clsProduto();
                if (!dr.IsDBNull(dr.GetOrdinal("idProduto")))
                {
                    C.idProduto = dr.GetInt32(dr.GetOrdinal("idProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("nomeProduto")))
                {
                    C.nomeProduto = dr.GetString(dr.GetOrdinal("nomeProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("descProduto")))
                {
                    C.descProduto = dr.GetString(dr.GetOrdinal("descProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("precProduto")))
                {
                    C.precProduto = dr.GetDecimal(dr.GetOrdinal("precProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("descontoPromocao")))
                {
                    C.descontoPromocao = dr.GetDecimal(dr.GetOrdinal("descontoPromocao"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("idCategoria")))
                {
                    C.idCategoria = dr.GetInt32(dr.GetOrdinal("idCategoria"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("ativoProduto")))
                {
                    C.ativoProduto = dr.GetBoolean(dr.GetOrdinal("ativoProduto"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("idUsuario")))
                {
                    C.idUsuario = dr.GetInt32(dr.GetOrdinal("idUsuario"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("qtdMinEstoque")))
                {
                    C.qtdMinEstoque = dr.GetInt32(dr.GetOrdinal("qtdMinEstoque"));
                }
                if (!dr.IsDBNull(dr.GetOrdinal("nomeCategoria")))
                {
                    C.nomeCategoria = dr.GetString(dr.GetOrdinal("nomeCategoria"));
                }
                if (dr["Imagem"] != DBNull.Value)
                {
                    C.imagem = (byte[])dr["Imagem"];
                }
                else
                {
                    C.imagem = new byte[0];
                }
                Produto.Add(C);
            }

            cn.Close();
            cn.Dispose();
            return(Produto);
        }