1

Buenas tardes alguien me podria ayudar con este pequeño problema porfavor... Tengo 2 funciones, 1a) BuscarIdFactura() obtiene el id del ultimo registro de la tabla "factura" y lo guarda en una variable global "string idFactura". La 2a) MostrarTabla() hace una consulta y los datos obtenidos los muestra en la tabla. Mi problema es que en la consulta sql que esta en la funcion MostrarTabla() le concateno la variable "idFactura" obtenida con la primera funcion pero no me arroja resultados porque segun es null pero yo ya verifique la funcion BucarIdFactura() y si guarda el idFactura correctamente. Me parece muy raro porque anteriormente ya he concatenado varias sentencias y no he tenido problema alguno. Este es la sentencia que no me da resultado:

String sql="SELECT Cantidad, Nombre, Precio FROM desarrollo_venta dv JOIN producto pd ON dv.ID_Producto=pd.ID_Producto WHERE ID_DesVent="+idFactura+";";

Este es el codigo:

Conectar con = new Conectar();
Connection conn = con.getConnection();
String idFactura;

public facturas() {
    initComponents();
    BuscarIdFactura();
    MostrarTabla();
}


void BuscarIdFactura(){
     Connection con;
    //Aqui busco el campo cantidad del ID_DesVent que obtuve con la sentencia anterior
      try {
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/susyken", "root", "");
        String sentencia = "SELECT MAX(ID_Factura) FROM factura";
        Statement stmt = null; //Esto sustituirá a ps
        stmt = con.createStatement(); //Usamos create... no prepare...
        ResultSet rs = stmt.executeQuery(sentencia);
        while (rs.next()) {
            idFactura = rs.getString(1);
        }
      } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Error");
      }
}


void MostrarTabla(){

    DefaultTableModel modelo = new DefaultTableModel();
    modelo.addColumn("Cantidad");
    modelo.addColumn("Producto");
    modelo.addColumn("Precio");
    jtFactura.setModel(modelo);

    String sql="SELECT Cantidad, Nombre, Precio FROM desarrollo_venta dv JOIN producto pd ON dv.ID_Producto=pd.ID_Producto WHERE ID_DesVent="+idFactura+";";
    String datos[] = new String[3];
    Statement st;
    try {
        st = conn.createStatement();
        ResultSet rs = st.executeQuery(sql);
        while(rs.next()){
            datos[0] = rs.getString(1);
            datos[1] = rs.getString(2);
            datos[2] = rs.getString(3);
            modelo.addRow(datos);
        }
        jtFactura.setModel(modelo);

    } catch (SQLException ex) {
        Logger.getLogger(facturas.class.getName()).log(Level.SEVERE, null, ex);
    }

1 Answers1

0

debe colocar antes de las comillas dobles "" las comillas simples '' así te debería funcionar, espero que te funcione y donde en el where ID_DesVent debe de colocarle el campo con la columna id de factura y listo

String sql="SELECT Cantidad, Nombre, Precio FROM desarrollo_venta dv JOIN producto pd ON dv.ID_Producto=pd.ID_Producto WHERE ID_DesVent='"+idFactura+"';";
Frankenstainero
  • 601
  • 5
  • 16