2017-04-22 57 views
3

當我嘗試從SQL Server訪問數據時,數據列的類型是varchar。不過,我嘗試將其設置爲文本框,我得到了這些類型的異常如何將sql數據庫中的值設置爲java文本框?

將varchar值「09ran01」轉換爲數據類型爲int

package src.ui; 

import src.ui.ImageHandler; 

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 

import javax.swing.event.*; 
import java.sql.*; 
import javax.swing.*; 

import java.awt.*; 
import java.util.Calendar; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.text.DateFormat; 
import java.sql.DriverManager; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import javax.swing.JOptionPane; 

public class AddAccount extends JPanel implements ActionListener, DocumentListener, KeyListener { 

    String imagefolder = ImageHandler.returnimagepath(); 
    Image bgImage = Toolkit.getDefaultToolkit().createImage(getClass().getResource("/src/ui/images/bgc.jpg")); 
    private static final long serialVersionUID = 1L; 
    public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss"; 
    String iden[] = {"Student","Others"}; 
    String type[] = {"Account User", "Walkthrough User"}; 
    JLabel userid = new JLabel("USER ID"); 
    JLabel name = new JLabel("FULL NAME"); 
    JLabel pswrd = new JLabel("PASSWORD"); 
    JLabel ident = new JLabel("IDENTIFICATION"); 
    JLabel idno = new JLabel("ID NUMBER"); 
    JLabel Add = new JLabel("ADDRESS"); 
    JLabel acctype = new JLabel("ACCOUNT TYPE"); 
    JTextField userFld = new JTextField(10); 
    JTextField nameFld = new JTextField(10); 
    JPasswordField pswrdFld = new JPasswordField(10); 
    JComboBox identC = new JComboBox(iden); 
    JComboBox actype = new JComboBox(type); 
    JTextField idFld = new JTextField(10); 
    JTextArea addArea = new JTextArea(10, 10); 
    JButton okButton = new JButton("OK"); 
    JButton exitButton = new JButton("RESET"); 
    JButton b1 = new JButton("SEARCH"); 
    JScrollPane scroll = new JScrollPane(addArea); 

    public static Connection getConnection() { 
     Connection conn = null; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/cybman", "root", ""); 
     } catch (Exception e) { 
      //System.out.println(e); 
     } 
     return conn; 
    } 
    public static Connection getConnection1() { 
     Connection con = null; 
     try { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      con = DriverManager.getConnection("jdbc:sqlserver://localhost\\BCA1:1433;databaseName=Old_Bhandarkars;user=sa;password=1234"); 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null,"SERVER ERROR"); 
      //System.out.println(e); 
     } 
     return con; 
    } 

    public void changedUpdate(DocumentEvent ev) { 
    } 

    public void removeUpdate(DocumentEvent ev) { 
    } 

    public void insertUpdate(DocumentEvent ev) { 
    } 

    public void paintComponent(Graphics g) { 
     g.drawImage(bgImage, 0, 0, this); 
    } 

    public void init() { 
     setLayout(null); 
     okButton.addActionListener(this); 
     b1.addActionListener(this); 
     exitButton.addActionListener(this); 
     pswrdFld.addActionListener(this); 
     pswrdFld.setEchoChar('*'); 
     addArea.getDocument().addDocumentListener(this); 
     identC.addActionListener(this); 
     actype.addActionListener(this); 
     userid.setBounds(270, 20, 120, 20); 
     userFld.setBounds(470, 20, 140, 20); 
     b1.setBounds(670, 20, 100, 20); 
     name.setBounds(270, 70, 120, 20); 
     nameFld.setBounds(470, 70, 140, 20); 
     pswrd.setBounds(270, 120, 120, 20); 
     pswrdFld.setBounds(470, 120, 140, 20); 
     ident.setBounds(270, 170, 120, 20); 
     identC.setBounds(470, 170, 140, 20); 
     idno.setBounds(270, 220, 120, 20); 
     idFld.setBounds(470, 220, 140, 20); 
     acctype.setBounds(270, 270, 120, 20); 
     actype.setBounds(470, 270, 140, 20); 
     Add.setBounds(270, 320, 320, 20); 
     scroll.setBounds(470, 320, 140, 60); 
     okButton.setBounds(270, 410, 100, 20); 
     okButton.addKeyListener(this); 
     exitButton.setBounds(510, 410, 100, 20); 
    } 

    public AddAccount() { 
     init(); 
     add(userid); 
     add(userFld); 
     add(name); 
     add(nameFld); 
     add(pswrd); 
     add(pswrdFld); 
     add(ident); 
     add(identC); 
     add(idno); 
     add(idFld); 
     add(acctype); 
     add(actype); 
     add(Add); 
     add(b1); 
     add(scroll); 
     add(okButton); 
     add(exitButton); 
    } 

    public static String now() { 
     Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW); 
     return sdf.format(cal.getTime()); 

    } 

    private String getDateTime() { 
     DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
     Date date = new Date(); 
     return dateFormat.format(date); 
    } 
    public class Function 
    { 
     Connection con=getConnection1(); 
    ResultSet rs; 

     public ResultSet find(String s) 
     { 
      int a=Integer.parseInt(s); 
      try{ 
       Statement sta = con.createStatement(); 
      String s1 = "select * from Members where Fld_Member_Id="+a+""; 
     rs = sta.executeQuery(s1); 


      } 
      catch(Exception ex){ 
       JOptionPane.showMessageDialog(null,"No connection"); 
       //JOptionPane.showMessageDialog(null,ex.getMessage()); 
      } 
      //JOptionPane.showMessageDialog(null,rs); 

     return rs; 

     } 

    } 

    public void actionPerformed(ActionEvent e) { 
     String str = e.getActionCommand(); 
     char[] pass; 
     String uid; 
     String nam; 
     String add; 
     String id; 
     String idnum; 
     String actyp; 
     int amt = 0; 
     String datE; 
     if (str.equals("SEARCH")) { 
      Function f=new Function(); 
      ResultSet rs=null; 
      String n1="Fld_First_Name"; 
      String i1="Fld_Member_Id"; 
      String address="Fld_PAddr"; 
      uid = userFld.getText(); 


      if(uid.equals("")) 
      { 
       JFrame msg=new JFrame(); 
       JOptionPane.showMessageDialog(msg, "Please enter the user id", "Error Message", JOptionPane.ERROR_MESSAGE); 

      } 
      // simple.main(); 
      else 
      { 
       //idFld.setText(userFld.getText()); 
      rs=f.find(userFld.getText()); 
      // System.out.println("Fld_First_Name"); 
      try{ 
       if(rs.next()){ 
//      int i = Integer.parseInt(rs.getString("Fld_First_Name")); 
//     int j = Integer.parseInt(rs.getString("Fld_Member_Id")); 
//     int k = Integer.parseInt(rs.getString("Fld_PAddr")); 
        nameFld.setText(rs.getString("Fld_First_Name")); 
        idFld.setText(rs.getString("Fld_Member_Id")); 
        addArea.setText(rs.getString("Fld_PAddr")); 

       } 
       else 
       { 
        JOptionPane.showMessageDialog(null,"No data"); 
       } 
      } 
      catch(Exception ex) 
      { 
       JOptionPane.showMessageDialog(null,ex.getMessage()); 
      } 
      } 
     } 

     if (str.equals("OK")) { 


      try { 

       uid = userFld.getText(); 
       nam = nameFld.getText(); 
       pass = pswrdFld.getPassword(); 
       add = addArea.getText(); 
       idnum = idFld.getText(); 
       id = (String) identC.getSelectedItem(); 
       actyp = (String) actype.getSelectedItem(); 
       datE = getDateTime(); 
       String pwrd = new String(pass); 

       Connection conn = getConnection(); 

       /*ERROR CHECKING*/ 
       boolean success = true; 

       if (uid.equals("")) { 
        JFrame msg = new JFrame(); 
        JOptionPane.showMessageDialog(msg, "Please enter the user id", "Error Message", JOptionPane.ERROR_MESSAGE); 
        success = false; 
       } else if (nam.equals("")) { 
        JFrame msg = new JFrame(); 
        JOptionPane.showMessageDialog(msg, "Please enter the name", "Error Message", JOptionPane.ERROR_MESSAGE); 
        success = false; 
       } else if (pwrd.equals("")) { 
        JFrame msg = new JFrame(); 
        JOptionPane.showMessageDialog(msg, "Please enter the password", "Error Message", JOptionPane.ERROR_MESSAGE); 
        success = false; 
       } else if ((!id.equals("Student")) && (idnum.equals(""))) { 
        JFrame msg = new JFrame(); 
        JOptionPane.showMessageDialog(msg, "Please enter the identification number", "Error Message", JOptionPane.ERROR_MESSAGE); 
        success = false; 
       } else if (add.equals("")) { 
        JFrame msg = new JFrame(); 
        JOptionPane.showMessageDialog(msg, "Please enter the address", "Error Message", JOptionPane.ERROR_MESSAGE); 
        success = false; 
       } 

       /*end of ERROR CHECKING*/ 

       if (success == true) { 
        ///////////ENSURE///////// 
        JFrame msg = new JFrame(); 
        int choice; 
        choice = JOptionPane.showConfirmDialog(msg, "Are you sure?", "Select your choice", JOptionPane.OK_CANCEL_OPTION); 
        ///////////////////////// 

        if (choice == JOptionPane.OK_OPTION) { 
         str = "insert into account(userid,name,password,address,identification,identificationnum,amount,dates,acctype" + ") values (?,?,?,?,?,?,?,?,?)"; 
         PreparedStatement ps = conn.prepareStatement(str); 

         ps.setString(1, uid); 
         ps.setString(2, nam); 
         ps.setString(3, pwrd); 
         ps.setString(4, add); 
         ps.setString(5, id); 
         ps.setString(6, idnum); 
         ps.setInt(7, amt); 
         ps.setString(8, datE); 
         ps.setString(9, actyp); 

         int count; 
         count = ps.executeUpdate(); 
         count++; 
         count--; 

         ////////////////////////////// 
         ReportPanel.userC.addItem(uid); 
         ViewAccount.userC.addItem(uid); 

         if (actyp.equals("Account User")) { 
          RechargePanel.userC.addItem(uid); 
         } 
         ////////////////////////////// 

         JFrame msg1 = new JFrame(); 
         JOptionPane.showMessageDialog(msg1, "An account has been successfully created", "Information", JOptionPane.INFORMATION_MESSAGE); 
        } else if (choice == JOptionPane.CANCEL_OPTION) { 
         JOptionPane.showMessageDialog(msg, "Account Creation Aborted", "Information", JOptionPane.INFORMATION_MESSAGE); 
        } 
       } 
       //conn.close(); 


      } catch (SQLException e1) { 
       String error; 
       JFrame msg = new JFrame(); 
       //error=e1.toString(); 
       error = "Your entry for user id already exists"; 
       JOptionPane.showMessageDialog(msg, error, "Error Message", JOptionPane.ERROR_MESSAGE); 
      } catch (Exception e1) { 
       // TODO Auto-generated catch block 
       String error; 
       JFrame msg = new JFrame(); 
       error = e1.toString(); 
       JOptionPane.showMessageDialog(msg, error, "Error Message", JOptionPane.ERROR_MESSAGE); 

      } 

     } 
///////////////////////////////////////////////////////////////////////////  
     if (str.equals("RESET")) { 
      try { 
       userFld.setText(""); 
       nameFld.setText(""); 
       pswrdFld.setText(""); 
       addArea.setText(""); 
       idFld.setText(""); 
      } catch (Exception e2) { 
       String error; 
       JFrame msg = new JFrame(); 
       error = e2.toString(); 
       JOptionPane.showMessageDialog(msg, error, "Error Message", JOptionPane.ERROR_MESSAGE); 
      } 
     } 
    } 
/////////////////////////////////////////////////////////// 

    public void keyPressed(KeyEvent key) { 
     // 
    } 
///////////////////////////////////////////////////// 

    public void keyReleased(KeyEvent key) { 
     if (key.getSource() == pswrdFld) { 
      if (key.getKeyCode() == KeyEvent.VK_ENTER) { 
      } 
     } 
    } 

///////////////////////////////////////////////// 
    public void keyTyped(KeyEvent key) { 
     // 
    } 
////////////////////////////////////////////// 

} 

時如何設置的所有值的文本框轉換失敗?

  field name     data type 
--------------------------------------------------------------------- 
      Fld_First_Name    varchar 
      Fld_Member_Id     varchar 
      Fld_PAddr      nvarchar 


SELECT * FROM Members where Fld_Member_Id='14932'; 


_____________________________________________________________________________ 
Fld_Member_Id Fld_First_Name  Fld_PAddr 
______________________________________________________________________________ 
14932    abc    abc 

回答

3

在SQL查詢的WHERE子句中,varchar變量應該位於單引號內。嘗試String s1 = "select * from Members where Fld_Member_Id='"+a+"'"; 將單引號添加到statement.And我認爲它應該工作setText方法,您提到如果您正確傳遞varchar值。

4

如果你不知道什麼是MEMBERID的類型,然後使用

idFld.setText(String.valueOf("Your value")); 
相關問題