public object Editar(Cliente cte)
        {
            object resultado = new object();

            try
            {
                if (Validar(1, cte))
                {
                    using (SqlConnection conexion = new SqlConnection(Properties.Settings.Default.cadenaConexion))
                    {
                        string cadena_sql = "update Clientes set direccion=@dir,codidoPostal= @cp,rfc= @rfc, telefono=@tel," +
                                            " email=@email,tipo= @tipo, estatus=@estatus, idCiudad=@idciudad where idcliente = @idcliente";
                        //idCliente	direccion	codidoPostal	rfc	telefono	email	tipo	estatus     idCiudad
                        SqlCommand comando = new SqlCommand(cadena_sql, conexion);
                        comando.Parameters.AddWithValue("@dir", cte.Direccion);
                        comando.Parameters.AddWithValue("@cp", cte.CP);
                        comando.Parameters.AddWithValue("@rfc", cte.RFC);
                        comando.Parameters.AddWithValue("@tel", cte.Telefono);
                        comando.Parameters.AddWithValue("@email", cte.Email);
                        comando.Parameters.AddWithValue("@tipo", cte.Tipo);
                        comando.Parameters.AddWithValue("@estatus", cte.Estatus);
                        comando.Parameters.AddWithValue("@idciudad", cte.IDCiudad);
                        comando.Parameters.AddWithValue("@idcliente", cte.ID);
                        conexion.Open();

                        int cant_registros = (int)comando.ExecuteNonQuery();
                        conexion.Close();
                        if (cant_registros == 1)
                        {
                            //cte.ID = getID(cte);

                            if (cte.Tipo == 'T')
                            {
                                resultado = new ClienteTiendaDAO().Editar((ClienteTienda)cte.InfoCliente, cte.ID);
                                Type resultado_tipo = resultado.GetType();

                                if (resultado_tipo.Equals(typeof(string)))
                                {
                                    Mensajes.Error(resultado.ToString());
                                }
                                else
                                {
                                    resultado = true;
                                }
                            }
                            else
                            {
                                resultado = new ClienteIndividualDAO().Editar((ClienteIndividual)cte.InfoCliente, cte.ID);
                                Type resultado_tipo = resultado.GetType();

                                if (resultado_tipo.Equals(typeof(string)))
                                {
                                    return(resultado);
                                }
                                else
                                {
                                    resultado = true;
                                }
                            }
                        }
                        else
                        {
                            resultado = "Se ha generado un error no especificado";
                        }
                    }
                }
                else
                {
                    resultado = "Error: Ya existe un cliente de tienda con datos en común";
                }
            }
            catch (SqlException ex)
            {
                throw new Exception("Error relacionado con la BD. [ClienteDAO.R] \n Anota este error y contacta al administrador.\n" + ex.Message);
            }
            return(resultado);
        }
        public List <Cliente> ConsultaGeneral(string sql_where, List <string> parametros, List <object> valores)
        {
            List <Cliente> clientes = new List <Cliente>();

            try
            {
                using (SqlConnection conexion = new SqlConnection(Properties.Settings.Default.cadenaConexion))
                {
                    string cadena_sql = "select * from Clientes " + sql_where;
                    //idCliente	direccion	codidoPostal	rfc	telefono	email	tipo	estatus     idCiudad

                    SqlCommand comando = new SqlCommand(cadena_sql, conexion);

                    conexion.Open();
                    for (int i = 0; i < parametros.Count; i++)
                    {
                        comando.Parameters.AddWithValue(parametros[i], valores[i]);
                    }

                    SqlDataReader lector = comando.ExecuteReader();
                    if (lector.HasRows)
                    {
                        while (lector.Read())
                        {
                            Cliente cliente = new Cliente(
                                (int)lector["idCliente"],
                                (string)lector["direccion"],
                                (string)lector["codidoPostal"],
                                (string)lector["rfc"],
                                (string)lector["telefono"],
                                (string)lector["email"],
                                ((string)lector["tipo"])[0],    //Se castea primero como string y después se toma el Char en la Pos 0
                                ((string)lector["estatus"])[0], //Se castea primero como string y después se toma el Char en la Pos 0
                                (int)lector["idCiudad"]
                                );
                            clientes.Add(cliente);
                        }
                        lector.Close();
                        conexion.Close();
                    }
                    else
                    {
                        lector.Close();
                        conexion.Close();
                    }
                }
                foreach (Cliente cliente in clientes)
                {
                    parametros.Clear();
                    valores.Clear();
                    parametros.Add("@id");
                    valores.Add(cliente.ID);
                    if (cliente.Tipo == 'I')
                    {
                        List <ClienteIndividual> clientesind = new ClienteIndividualDAO().ConsultaGeneral(" where idCliente=@id", parametros, valores);
                        if (clientesind.Count == 1)
                        {
                            cliente.InfoCliente = clientesind[0]; //Se asigna la posición 0 porque sólo debe de encontrar un registro en ClientesIndividual
                        }
                    }
                    else
                    {
                        List <ClienteTienda> clientestienda = new ClienteTiendaDAO().ConsultaGeneral(" where idCliente=@id", parametros, valores);
                        if (clientestienda.Count == 1)
                        {
                            cliente.InfoCliente = clientestienda[0];
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                throw new Exception("Error relacionado con la BD. [ClienteDAO.C] \n Anota este error y contacta al administrador.\n" + ex.Message);
            }
            return(clientes);
        }