2017-02-21 5 views
0

Я пытаюсь избавиться от этой ошибки. Не могли бы вы дать мне руку здесь? Ниже мой код.Ошибка говорит, что количество столбцов не соответствует значению счета

package Viewer; 

import Model.JDBC; 
import java.sql.ResultSet; 
import javax.swing.JOptionPane; 
public class User extends javax.swing.JFrame 
{ 
    Model.JDBC j=new JDBC(); 

    public User() 
    { 
     initComponents(); 
     eid.grabFocus(); 
    } 
    @SuppressWarnings("unchecked")     

    private void saveActionPerformed(java.awt.event.ActionEvent evt) 
    {          
     try 
     { 
      ResultSet rs = j.getData("select eid from user where eid='" + eid.getText() + "'"); 
      if (rs.next()) 
      { 
       if (eid.getText().equals(rs.getString(1))) 
       { 
        JOptionPane.showMessageDialog(null, "Existing User Name"); 
        pwd.setText(""); 
        cpwd.setText(""); 
       } 
      } 
      else 
      { 
       if (eid.getText().isEmpty()) 
       { 
        JOptionPane.showMessageDialog(null,"Enter User Name"); 
        eid.grabFocus(); 
       } 
      else if (pwd.getText().isEmpty()) 
      { 
       JOptionPane.showMessageDialog(null,"Enter Password"); 
      } 
      else if (pwd.getText().isEmpty()) 
      { 
       JOptionPane.showMessageDialog(null,"Enter Password"); 
      } 
      else 
      { 
       String pass = new String(pwd.getPassword()); 
       String pas1 = new String(cpwd.getPassword()); 

       if (pass.equals(pas1)) 
       { 
        String ps = new String(pwd.getPassword()); 
        String s = ps; 
        try 
        { 
         j.putData("insert into user values ('" + eid.getText() + "','" + s + "','" + ulevel.getSelectedItem() + "','"+pwd.getText()+"','"+cpwd.getText()+"')"); 
         JOptionPane.showMessageDialog(null,"User Added Successfully.. "); 
         j.getCon().close(); 
         clear(); 
        } 
        catch (Exception e) 
        { 
         System.out.println(e + "101 User Adding"); 
        } 
       } 
       else 
       { 
        JOptionPane.showMessageDialog(null,"Password Not Match"); 

        pwd.grabFocus(); 
        pwd.setText(""); 
        cpwd.setText(""); 
       } 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     System.out.println(e); 
    } 
}          
    private void deleteActionPerformed(java.awt.event.ActionEvent evt) 
    {          
     try 
     { 
     ResultSet rs = j.getData("select * from user where eid='" + eid.getText() + "'"); 
      if (rs.next()) 
      { 
       if (rs.getString(1).equals(eid.getText())) 
       {    
        String a = (pwd.getText()); 
        String b = (cpwd.getText()); 
        if((rs.getString(2).equals(a)) && (rs.getString(2).equals(b))) 
        { 
         int t = JOptionPane.showConfirmDialog(null, "Are You Sure...?"); 
         if(t==JOptionPane.YES_OPTION) 
         { 
          j.putData("delete from user where eid='"+eid.getText()+"'"); 
          clear(); 
         } 
        } 
       else if(!rs.getString(2).equals(a)) 
       { 
        JOptionPane.showMessageDialog(null, "Password Not Match"); 
        pwd.setText(""); 
        cpwd.setText(""); 
       } 
       else if(!rs.getString(2).equals(b)) 
       { 
        JOptionPane.showMessageDialog(null, "Password Not Match"); 
        pwd.setText(""); 
        cpwd.setText(""); 
       } 

      } 
     } 
     else 
     { 
      JOptionPane.showMessageDialog(null, "Invalid User Name"); 
      clear(); 
     } 

    } 
    catch (Exception ex) 
    { 
     ex.printStackTrace(); 
    } 

    }          

    private void eidKeyPressed(java.awt.event.KeyEvent evt) 
    {        
     if (evt.getKeyCode() == 10) 
     { 
      if (eid.getText().isEmpty()) 
      { 
      //ms.massage("Enter User Name"); 
       eid.grabFocus(); 
      } 
      ulevel.grabFocus(); 
     } 
    }        

    private void ulevelKeyPressed(java.awt.event.KeyEvent evt) 
    {         
     if (evt.getKeyCode() == 10) 
     { 
      pwd.grabFocus(); 
     } 
    }         

    private void pwdKeyPressed(java.awt.event.KeyEvent evt) 
    {        
     if (evt.getKeyCode() == 10) 
     { 
      if (pwd.getText().isEmpty()) 
      { 
       JOptionPane.showMessageDialog(null,"Enter Password"); 
      } 
      else 
      { 
       cpwd.grabFocus(); 
      } 
     } 
    }        

    private void cpwdKeyPressed(java.awt.event.KeyEvent evt) 
    {         
     if (evt.getKeyCode() == 10) 
     { 
      String pass = new String(pwd.getPassword()); 
      System.out.println(pass); 
      String pas1 = new String(cpwd.getPassword()); 
      System.out.println(pas1); 
      if (pass.equals(pas1)) 
      { 
       save.grabFocus(); 

      } 
      else 
      { 
      JOptionPane.showMessageDialog(null,"Password Not Match"); 

      pwd.grabFocus(); 
      pwd.setText(""); 
      cpwd.setText(""); 
     } 
    } 
}        
    private void pwdActionPerformed(java.awt.event.ActionEvent evt) 
    {}         
public void clear() 
{ 
    eid.setText(""); 
    ulevel.setSelectedItem("Admin"); 
    pwd.setText(""); 
    cpwd.setText(""); 
} 

    public static void main(String args[]) 
    { 
     try 
     { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) 
      { 
       if ("Nimbus".equals(info.getName())) 
       { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } 
     catch (ClassNotFoundException ex) 
     { 
      java.util.logging.Logger.getLogger(User.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     catch (InstantiationException ex) 
     { 
      java.util.logging.Logger.getLogger(User.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     catch (IllegalAccessException ex) 
     { 
      java.util.logging.Logger.getLogger(User.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     catch (javax.swing.UnsupportedLookAndFeelException ex) 
     { 
      java.util.logging.Logger.getLogger(User.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     java.awt.EventQueue.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       new User().setVisible(true); 
      } 
     }); 
    }   
    private javax.swing.JPasswordField cpwd; 
    private javax.swing.JButton delete; 
    private javax.swing.JTextField eid; 
    private javax.swing.JFrame jFrame1; 
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JLabel jLabel2; 
    private javax.swing.JLabel jLabel3; 
    private javax.swing.JLabel jLabel4; 
    private javax.swing.JLabel jLabel5; 
    private javax.swing.JLabel jLabel6; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JPasswordField pwd; 
    private javax.swing.JButton save; 
    private javax.swing.JButton search; 
    private javax.swing.JComboBox<String> ulevel; 
    private javax.swing.JButton update; 
} 

С помощью приведенной выше коды, я пытался запустить Информацию о пользователе эквайринга формы с именем, как «userregistry» свинг приложение, где текстовое поле с именем «Ид» получает имя пользователя, комбинированное имя ящика «ulevel» дает пользователю тип (Admin/user) и поле пароля с именем «pwd», чтобы указать пароль, другое поле пароля с именем «cpwd» для подтверждения пароля. Для выполнения указанных действий есть 4 кнопки, которые называются как сохранение, поиск, обновление, удаление. (Коды для поиска и обновления здесь не указаны).

У меня есть таблицы SQL, созданные с помощью этого синтаксиса

mysql> create table user(eid varchar(45) primary key, ulevel int, pwd varchar(45 
), cpwd varchar(45)); 

Моей проблемы this-: Когда я ввожу данные и нажмите кнопку Сохранить NetBeans говорит

java.sql.SQLException: Column count doesn't match value count at row 101 User Adding 

Что может быть причина для этого?

я попробовал 01 и с

catch (Exception e) 
{ 
    System.out.println(e+"01 User adding"); 
} 

в этом конкретном месте, где он дает мне сообщение

java.sql.SQLException: Column count doesn't match value count at row 101 User Adding 
+0

какой метод выбросить эту ошибку? –

ответ

3

Вы получаете эту ошибку, потому что число столбца, который используется в запросе больше что ваш стол, ваша таблица содержит 4 колонки eid, ulevel, pwd, cpwd:

user(eid varchar(45) primary key, ulevel int, pwd varchar(45), cpwd varchar(45)) 

И вы используете Query, которые принимают 5 столбцов eid.getText(), s, ulevel.getSelectedItem(), pwd.getText(), cpwd.getText():

j.putData("insert into user values ('" + eid.getText() + "','" + s + "','" + 
      ulevel.getSelectedItem() + "','"+pwd.getText()+"','"+cpwd.getText()+"')"); 

Так исправить это, и каждая вещь будет хорошо.

Примечание

Ваш путь может получить ошибки синтаксиса или вызвать SQL Injection, поэтому вместо того, чтобы использовать Заявление использовать PrepapredStatement его больше помощи полного и более безопасным.

Удачи.

+0

Большое спасибо YCF_L :) Позвольте мне попробовать. Еще раз спасибо. С наилучшими пожеланиями! – Jay

+0

ОК, удачи сообщите мне, когда это работает @Jay –

+0

Сделано! :) Еще раз спасибо, приятель ... У меня отличный день! – Jay

Смежные вопросы