Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Mastermind

Páginas: 1 ... 5 6 7 8 9 [10] 11 12 13 14 15 ... 24
181
Ejemplo (este en concreto con VB2012 y base de datos access) donde se tiene un form en el cual aparecen cuatro botones: buscar, modificar, actualizar y volver. Además aparecen tres textBox: cédula, nombre y apellido. Inicialmente los botones modificar y actualizar tienen la propiedad enabled = false (ya que no hay datos para modificar ni actualizar).

Hay dos formularios: el form de inicio (frmInicio) y el form para buscar y modificar datos (frmActualizar) que permite buscar, modificar, actualizar y volver al form de inicio. El botón modificar lo que hace es permitir la edición en los TextBox donde se visualizan los resultados. El botón actualizar lo que hace es escribir en la base de datos los campos con los valores editados. El botón buscar busca un registro según los datos introducidos y el botón volver vuelve desde el frmActualizar al frmInicio.

Código: [Seleccionar]
Imports System.Data.OleDb

Public Class frmActualizar

Dim conexion as New OleDb.OleDbConnection 'Representa una conexión abierta a un origen de datos
Dim comandos as New OleDb.OleDbCommand 'Representa una instrucción sql o un procedimiento almacenado que se va a ejecutar en un origen de datos
Dim adaptador as New OleDb.OleDbDataAdapter
Dim registro as New DataSet

Try
conexion.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & "C:\Users\Admin\Documents\datos.accdb") 'Entre comillas está la cadena de conexión, tenemos que consultarla en el entorno de desarrollo
conexion.Open()
MsgBox ("Conexión correcta", vbInformation, "Conectado")

Catch ex As Exception
MsgBox ("Ha ocurrido un error al intentar conectarse con la base de datos", vbInformation, "Error")
End Try


'Continúa



Ejemplo de botón buscar


Código: [Seleccionar]
Dim consulta As String
Dim lista As Byte

If txtCedula.Text <> "" Then
consulta = "SELECT * FROM clientes_restaurante WHERE cedula = " & txtCedula.Text & ""
adapatador = New OleDb.OleDBDataAdapater (consulta, conexion)
registro = New DataSet
adaptador.Fill(registro, "clientes_restaurante")
lista = registro.Tables("clientes_restaurante").Rows.Count
End If

If lista <>0 Then
'Cargar los datos encontrados donde corresponda
txtCedula.Text = registro.Tables("clientes_restaurante").Rows(0).Item("cedula")
txtNombre.Text = registro.Tables("clientes_restaurante").Rows(0).Item("nombre")
txtApellido.Text = registro.Tables("clientes_restaurante").Rows(0).Item("apellido")

cmdModificar.Enabled = True
cmdActualizar.Enabled = True



Activar los campos para permitir la escritura

txtCedula.Enabled = True
txtNombre.Enabled = True
txtApellido.Enabled = True



Ejemplo de botón actualizar
Código: [Seleccionar]
Dim consulta_actualizar As String

Try
consulta_actualizar = "UPDATE clientes_restaurante SET cedula = '" &txtCedula.Text & "', nombre = '" & txtNombre.Text & "', apellido = '" & txtApellido.Text & " "
comandos = New OleDb.OleDbCommand (consulta_actualizar, conexion)
comandos.ExecuteNonQuery()
MsgBox ("El registro se ha actualizado", vbInformation, "Actualizado")

'Limpiar los campos
txtCedula.Clear()
txtNombre.Clear()
txtApellido.Clear()

'Desactivar campos y botones
txtNombre.Enabled = False
txtNombre.Enabled = False
txtApellido.Enabled = False

cmdModificar.Enabled = False
cmdActualizar.Enabled = False

Catch ex As Exception
MsgBox ("Ha ocurrido un error al intentar actualizar el registro", vbExclamation, "Error")
End Try

Botón Volver para cerrar el form de inicio

Código: [Seleccionar]
conexion.Close() 'Cerrar la conexión
frmInicio.Show() ' Mostrar formulario inicial
Me.Close() 'Cerrar el formulario

182
Hola! Parece que se ven algunas cosas raras, por ejemplo en el html:

¿Para qué tienes este label fuera del form? <label for="textfield"></label>

Y también, para qué tener el label vacío. Veo más normal que el label envuelva a un texto o al mismo input antes que tenerlo vacío

  <p>
    <label for="textfield3">
    <input type="text" name="apellidos" id="textfield3" />
</label>
  </p>


También parece que tienes errores en la sintaxis de php, por ejemplo en $selec= "select telefono from persona where apellidos='$apellido' and nombre='$nombre'" ;

no estás haciendo bien los cierres de comillas ni introduciendo el operador . para concatenar las variables con el texto, con lo cual la consulta no parece que se vaya a generar bien.

Fíjate en cómo hace las concatenaciones de variables con las sentencias de consulta a la base de datos aquí usando el operador . :

https://www.aprenderaprogramar.com/foros/index.php?topic=1291.msg7217#msg7217

http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

183
Hola, la verdad es que no parece que tenga mucho que ver con los arrays (arreglos). A lo mejor donde dice "y en seguida una lista variable de argumentos" se está refiriendo a que le pases un array de argumentos, pero no lo deja claro, tampoco he visto el problema completo y no sé a qué se refiere cuando habla de "figura de la primera práctica..."


Para recibir un array como parámetro de un método tienes que escribirlo así:

public static void imprimirConFormato(String cadenaDeFormato, String[] listaVariableDeArgumentos);

Aquí te he puesto los parámetros como un String y un arreglo de Strings, pero no sé si tienes que hacerlo con otro tipo de datos.

Para saber cómo imprimir desde Java y sobre la clase PrinterJob: www.aprenderaprogramar.com/foros/index.php?topic=540

Saludos!!!!

184
Hola, de la misma forma que para recuperar datos lo haces desde la base de datos, también para guardar datos lo tienes que hacer en la base de datos, si no lo haces así no se guardarán. Tomando de referencia cómo lo hace en https://www.aprenderaprogramar.com/foros/index.php?topic=1029 el código con el que deberías guardar sería similar a este, pero en lugar de da, dt, etc. tendrías que meter los nombres que estás usando tú:


Código: [Seleccionar]
Private Sub ButtonGuardarEdicion_Click(sender As Object, e As EventArgs) Handles ButtonGuardarEdicion.Click

Try
            Dim GuardarEdicion As OleDbCommandBuilder
            GuardarEdicion = New OleDbCommandBuilder(da)
            da.Update(dt)
            MsgBox("Se han Actualizado los Datos Modificados")

         Cod_puestoTextBox.Text = ""
         Nom_puestoTextBox.Text = ""
         Sal_nivel1TextBox.Text = ""
         Sal_nivel2TextBox.Text = ""
         Sal_nivel3TextBox.Text = ""
         Sal_nivel4TextBox.Text = ""
         Sal_nivel5TextBox.Text = ""
           
            dt.Dispose()
            conexion.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


End Sub


Saludos!!

185
Hola, si lo aplicaras a una imagen como una fotografía en blanco y negro (p.ej. la que pone wikipedia como ejemplo)


Se supone que saldrían los bordes de los objetos, como si fuera un dibujo a lápiz


Si lo aplicas a la fotografía en blanco y negro ¿qué te sale?

186
Hola, lo que te está pasando es normal. Nadie conoce todas las funciones o métodos de los lenguajes. Los programadores las vamos conociendo poco a poco a base de estudiar, hacer cursos, programar, etc. de esta manera cada vez tienes más recursos, pero nunca llegas a saberlo todo porque hay demasiadas funciones y métodos, incluso a veces se te olvidarán después de no trabajar un tiempo con ellas. Lo que sí debes hacer es aprender a buscar información para cuando tengas un problema poder resolverlo. Es importante que sepas dónde está la referencia oficial del lenguaje que estás utilizando y que sepas manejar y buscar a través de esa referencia.

Si un curso termina, empieza otro más avanzado. Si no encuentras otro más avanzado, busca algún libro, siempre encontrarás algo más avanzado de donde estás. Poco a poco vete viendo código de otras personas, buscando información... ¡la programación lleva mucho tiempo, más del que se suele creer!  :D


187
Hola, las mejoras que yo plantearía son:


Aquí parece que hay demasiadas líneas para capturar un detalle de la excepción, pero realmente ¿es tan importante el detalle?

Código: [Seleccionar]
catch (System.IO.IOException Ex)
            {
                Console.WriteLine(Ex.Message);
            }
            catch (System.OutOfMemoryException Exe)
            {
                Console.WriteLine(Exe.Message);
            }
            catch (ArgumentOutOfRangeException Exes)
            {
                Console.WriteLine(Exes.Message);
            }
            catch (OverflowException Exes)
            {
                Console.WriteLine(Exes.Message);
            }
            catch (FormatException Exes)
            {
                Console.WriteLine(Exes.Message);
            } 
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

Yo simplemente dejaría

Código: [Seleccionar]
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

Menos líneas, el programa más claro y creo que te funcionará prácticamente igual.


Más abajo has escrito int factorial = 5; pero esto no lo veo acertado. Normalmente las variables numéricas se inicializan a cero, aquí estás inicializando a 5 y eso puede confundir. Realmente da igual a qué valor inicialices porque después será sobreescrito, pero para ser más claros y no inducir confusión veo mejor inicializar a cero.

Luego hay una cosa que no estoy seguro si funciona bien: si piedes el factorial de 3 debe devolverte 1*2*3 que es 6, pero tú has puesto desde 1 hasta j<convertirValorFactorial con lo cual en vez de darte como resultado 3 te daría como resultado 2 (error porque haría 1*2 en lugar de 1*2*3). ¿Eso te funciona bien como lo tienes?

188
Hola, por el error que te está marcando la interpretación que yo hago es la siguiente:

Tienes un DataGridView cuyo contenido se establece a partir de una base de datos. En concreto en esta línea indicas:

Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)

Es decir, que el dataGridView se rellena a partir de la tabla Esc_Salarial obtenidoa a partir de Database1DataSet

Pero después tienes un fragmento de código que dice lo siguiente:

Código: [Seleccionar]
        Esc_SalarialDataGridView.ColumnCount = 7
        Esc_SalarialDataGridView.Columns(0).Name = "cod_puesto"
        Esc_SalarialDataGridView.Columns(1).Name = "nom_puesto"
        Esc_SalarialDataGridView.Columns(2).Name = "Sal_nivel1"
        Esc_SalarialDataGridView.Columns(3).Name = "Sal_nivel2"
        Esc_SalarialDataGridView.Columns(4).Name = "Sal_nivel3"
        Esc_SalarialDataGridView.Columns(5).Name = "Sal_nivel4"
        Esc_SalarialDataGridView.Columns(6).Name = "Sal_nivel5"

Y aquí lo que estás diciendo es que el dataGridView tendrá 7 columnas, cuyos nombres serán cod_puesto, nom_puesto, etc.

¿Cuál es el problema? Que por un lado estás diciendo que los datos se cargarán desde la base de datos, imagínate que en la base de datos tienes 9 columnas y que son espec_puesto, rut_puesto, etc. y por otro lado estás diciendo que el dataGridView tiene 7 columnas cuyos nombres son cod_puesto, nom_puesto...

Es decir, tienes una contradicción, por un dato dices que los datos vienen de base de datos y por otro los estás tratando de establecer tú como si no vinieran de base de datos. Tienes que decidir: si vienen de base de datos, tendrás que eliminar el establecimiento manual del número de columnas y sus nombres ;)

Saludos!!

189
Si no salta ninguna excepción supongo que se trata de un error lógico, no de una excepción propiamente dicha. Imagínate un programa donde yo le pido a un usuario que introduzca un número entre 1 y 10 y el usuario introduce 16. Ahí no salta ninguna excepción. Si quieres, podrías hacer que se lance una excepción cuando el usuario introduzca un número que no está entre 1 y 10.

Lo harías así:

Si (numeroIntroducido<1 ó numeroIntroducido>10) {
Lanzar excepción
}



Pero lo más normal en estos casos es introducir un control en el flujo del programa para que el usuario no pueda seguir avanzando, por ejemplo:

Si (numeroIntroducido<1 ó numeroIntroducido>10) {
MostrarMensaje "Número no válido, vuelva a introducir el número por favor"
}

Y poner las instrucciones necesarias para que no pueda seguir avanzando...

190
Hola, es lo que tú has dicho: cuando utilizas return tiene que ser la última sentencia (al final), ya que cuando se llega a un return el programa ya no sigue leyendo lo que hay detrás del return, todo lo que quieras hacer lo tienes que hacer antes del return. Saludos!!!

191
Con una imagen es difícil hacerse una idea. Pega el código de tu programa, o si es muy largo ponlo como archivos adjuntos para poder verlo  ;D

192
Hola kessou, lo que he entendido es que quieres que aparezcan sólo los datos para el usuario que está logeado.

Por ejemplo en esta consulta:

$sql = "SELECT b.name, u.email, b.time, b.date, b.comfort, b.adults, b.children, o.origen, d.destino FROM usuarios u join bookingfrom b on u.nombre=b.name join origen o on b.from=o.id join destino d on b.to=d.id where u.nombre=b.name";


Que sólo aparezcan los datos para el usuario que está logeado, cuyo email estará en $_SESSION["email"]

Si es esto simplemente tendrías que añadir una condición WHERE a la consulta, que indique que sólo se muestren los registros donde el email coincide con el email del usuario logeado.

Sería:

$sql = "SELECT b.name, u.email, b.time, b.date, b.comfort, b.adults, b.children, o.origen, d.destino FROM usuarios u join bookingfrom b on u.nombre=b.name join origen o on b.from=o.id join destino d on b.to=d.id where u.nombre=b.name and u.email='".$_SESSION["email"]."'";

Tienes que tener cuidado con las comillas simples - dobles abrirlas y cerrarlas bien porque cualquier pequeño fallo te dará lugar a un error. No estoy seguro sin puede ser mejor and u.email='".$_SESSION['email']."'"; , habría que probarlo.

Saludos!!

194
Una excepción que no salta en tiempo de ejecución lo más lógico es que trates de capturarla con debugging: debugging es depuración de código y la mayoría de los entornos de desarrollo como Eclipse, NetBeans, Visual Studio, etc. incorporan herramientas de debugging (de hecho, hasta un navegador web incorpora herramientas para debugging de desarrollos web). El debugging es prácticamente un campo de la programación, por tanto lleva tiempo aprender sus técnicas. Dentro de la programación el manejo de excepciones no suele considerarse una materia "básica", sino más bien propia de programadores avanzados.

Si quieres capturar excepciones que no saltan en tiempo de ejecución puedes también introducir una instrucción en el catch para que te salte una ventana de alerta cuando se detecte la excepción (aunque esta no llegue a detener el programa). Por ejemplo si hay una excepción que salga una ventana mostrando !Alerta! Excepción InvalidOperationException Pulse aceptar para continuar

Saludos!!

195
Hola, la verdad es que tengo poco conocimiento en el tema, lo que te puedo comentar es que para generar streaming necesitas varias cosas: en primer lugar un servidor potente (o quizás más de un servidor) ya que los requerimientos de hardware para el procesamiento que conlleva el streaming son altos. Vamos, que no se monta con un pc que tengamos en casa. Por otro lado tienes que elegir un protocolo a través del cual servir el contenido, hay varios protocolos populares. Y finalmente el software o plataforma desde la cual ofrecer el servicio. Estos tres aspectos tienen su complejidad, aunque con toda la información que hay en internet no creo que te falten guías si dispones de tiempo y dinero para ir montando lo necesario. Saludos!!!

196
Hola, no soy experto aunque me gustaría :) ... Aquí tienes un hilo donde se habla de búsquedas en excel usando visual basic (que es bastante similar a VBA) https://www.aprenderaprogramar.com/foros/index.php?topic=813 y quizás te sirva de ayuda. Una vez recuperes la celda en que se encuentra el lado ya puedes recuperar las celdas adyacentes y por ejemplo mostrar los resultados en un Label :)

197
Es extraño que te indique presencia de virus, no sé por qué puede estar haciendo eso. Para multiplicar byte a byte tendrías que ponerte ejemplos de cómo harías operaciones sencillas e implementar esos ejemplos para luego hacerlo con operaciones de números largos. Aquí tienes una referencia: http://codegolf.stackexchange.com/questions/2009/long-multiply-8-bits-at-a-time

Saludos

198
¿A qué te refieres con guardar los registros? ¿La fecha y la hora en la que hizo login?

200
Puedes probar con:

Código: [Seleccionar]
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10000

char * multiply(char [],char[]);
int main(){
    char a[MAX];
    char b[MAX];
    char *c;
    int la,lb;
    int i;
    printf("Introduzca el primer numero : ");
    scanf("%s",a);
    printf("Introduzca el segundo numero : ");
    scanf("%s",b);
    printf("Resultado de la multiplicacion : ");
    c = multiply(a,b);
    printf("%s",c);
    return 0;
}

char * multiply(char a[],char b[]){
    static char mul[MAX];
    char c[MAX];
    char temp[MAX];
    int la,lb;
    int i,j,k=0,x=0,y;
    long int r=0;
    long sum = 0;
    la=strlen(a)-1;
        lb=strlen(b)-1;
   
        for(i=0;i<=la;i++){
                a[i] = a[i] - 48;
        }

        for(i=0;i<=lb;i++){
                b[i] = b[i] - 48;
        }

    for(i=lb;i>=0;i--){
         r=0;
         for(j=la;j>=0;j--){
             temp[k++] = (b[i]*a[j] + r)%10;
             r = (b[i]*a[j]+r)/10;
         }
         temp[k++] = r;
         x++;
         for(y = 0;y<x;y++){
             temp[k++] = 0;
         }
    }
   
    k=0;
    r=0;
    for(i=0;i<la+lb+2;i++){
         sum =0;
         y=0;
         for(j=1;j<=lb+1;j++){
             if(i <= la+j){
                 sum = sum + temp[y+i];
             }
             y += j + la + 1;
         }
         c[k++] = (sum+r) %10;
         r = (sum+r)/10;
    }
    c[k] = r;
    j=0;
    for(i=k-1;i>=0;i--){
         mul[j++]=c[i] + 48;
    }
    mul[j]='\0';
    return mul;
}


Páginas: 1 ... 5 6 7 8 9 [10] 11 12 13 14 15 ... 24

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".