2015-08-07 2 views
0

Привет Я пытаюсь получить данные из базы данных и отображения в jtable, но я не могу это сделать. Код приведен ниже. Кто-нибудь может мне помочь, пожалуйста.Данные не отображаются в jtable

//Dialog Creation for Finding Data 
     jdlgFind=new JDialog(frame,"FIND DATA",true); 
     jdlgFind.setFont(new Font("Times New Roman", Font.PLAIN, 12)); 
     jdlgFind.setSize(650,500); 
     findpanel=new JPanel(); 
     findpanel.setBackground(new Color(144, 238, 144)); 
     jdlgFind.setContentPane(findpanel); 
     findpanel.setLayout(new FlowLayout()); 
     findpanel.setFont(new Font("Times New Roman", Font.PLAIN, 12)); 

     txtGetMobileno=new JTextField(15); 
     txtGetLandlineno=new JTextField(15); 
     txtGetPlaceofBirth=new JTextField(15); 

     JTable jtblFindDate=new JTable(tbldata,columnhead); 
     jspFindPanel=new JScrollPane(jtblFindDate); 
     jtblFindDate.setRowSelectionAllowed(true); 
     jtblFindDate.setFont(new Font("Times New Roman", Font.PLAIN, 11)); 
     jtblFindDate.setPreferredSize(new Dimension(600, 500)); 

     findpanel.add(new JLabel("Mobile No. please : ")).setFont(new Font("Times New Roman", Font.BOLD, 12)); 
     findpanel.add(txtGetMobileno).setFont(new Font("Times New Roman", Font.PLAIN, 12)); 
     findpanel.add(new JLabel("Landline No. please : ")).setFont(new Font("Times New Roman", Font.BOLD, 12)); 
     findpanel.add(txtGetLandlineno).setFont(new Font("Times New Roman", Font.PLAIN, 12)); 
     findpanel.add(new JLabel("Place Of Birth please : ")).setFont(new Font("Times New Roman", Font.BOLD, 12)); 
     findpanel.add(txtGetPlaceofBirth).setFont(new Font("Times New Roman", Font.PLAIN, 12)); 
     findpanel.add(jspFindPanel); 

     txtGetMobileno.setDocument(new TextFieldLimit(11)); 
     txtGetMobileno.addActionListener(new ActionListener() 
     { 
      @Override 
      public void actionPerformed(ActionEvent ae) 
      { 
       findMobileno=null; 
       findMobileno=txtGetMobileno.getText(); 
       txtGetLandlineno.setEditable(false); 
       txtGetPlaceofBirth.setEditable(false); 

       if(findMobileno.length()!=0) 
       { 
        try 
        { 
         dbcon=new DB_Connection(); 
         PreparedStatement pstmt=dbcon.DB_Connection("//F://eclipse_Luna_64_Development_Workspace//Project JAVA//LIC_AGENCY_TRACKER//DATABASE//LIC_DATA_TRACKER.accdb").prepareStatement("select Inquiry_Master_Data.Inquiry_Master_Name as [Inquirer Name],Inquiry_Master_Data.Inquiry_Master_Mobile_Number as [Inquirer Mobile No],Inquiry_Master_Data.Inquiry_Master_Landline_Number as [Inquirer Landline No]," 
           + "Inquiry_Master_Data.Inquiry_Master_Place_Of_Work as [Inquirer Work Place] from Inquiry_Master_Data where Inquiry_Master_Data.Inquiry_Master_Mobile_Number='"+findMobileno+"'"); 
         ResultSet rset=pstmt.executeQuery(); 
         ResultSetMetaData rsetmetadata=rset.getMetaData(); 
         int col=rsetmetadata.getColumnCount(); 

         columnhead=new Vector(col); 
         columnhead.add("Inquirer Name"); 
         columnhead.add("Inquirer Mobile No"); 
         columnhead.add("Inquirer Landline No"); 
         columnhead.add("Inquirer Work Place"); 

         tbldata=new Vector(); 
         row=new Vector();    
         while(rset.next()) 
         { 
          row=new Vector(col); 
          for(int i=1;i<=col;i++) 
           { 
            row.add(rset.getString(i)); 
           } 
          tbldata.add(row); 
         } 
        } 
        catch(Exception e) 
        { 
         JOptionPane.showMessageDialog(null, "Data not found."); 
         txtGetMobileno.setText(""); 
         txtGetLandlineno.setEditable(true); 
         txtGetPlaceofBirth.setEditable(true); 
         txtGetMobileno.requestFocus(); 
        } 
       } 
       else 
       { 
        txtGetLandlineno.requestFocus(); 
       } 
      } 
     }); 

Я пользуюсь MS Access. Я использовал Prepared Statement для извлечения данных, но не отображает данные.

С уважением Сандип

ответ

0

Привет, я решил проблему. Я изменил код. Ниже приводится модификация часть, я использовал следующие коды: -

dbcon=new DB_Connection(); 
         PreparedStatement pstmt=dbcon.DB_Connection("//F://eclipse_Luna_64_Development_Workspace//Project JAVA//LIC_AGENCY_TRACKER//DATABASE//LIC_DATA_TRACKER.accdb").prepareStatement("select Inquiry_Master_Data.Inquiry_Master_Name as [Inquirer Name],Inquiry_Master_Data.Inquiry_Master_Mobile_Number as [Inquirer Mobile No],Inquiry_Master_Data.Inquiry_Master_Landline_Number as [Inquirer Landline No]," 
           + "Inquiry_Master_Data.Inquiry_Master_Place_Of_Work as [Inquirer Work Place] from Inquiry_Master_Data where Inquiry_Master_Data.Inquiry_Master_Place_Of_Work='"+findPlaceofBirth+"'"); 
         ResultSet rset=pstmt.executeQuery(); 
         jtblFindData.setModel(DbUtils.resultSetToTableModel(rset)); 

Для этого я использовал rs2xml.jar файл. С уважением Sandeep

1
JTable jtblFindDate=new JTable(tbldata,columnhead); 

Что это заявление должен делать? У вас действительно есть достоверные данные в обеих этих переменных? Если нет, тогда таблица будет создана без строк или столбцов.

columnhead=new Vector(col); 
columnhead.add("Inquirer Name"); 
columnhead.add("Inquirer Mobile No"); 
columnhead.add("Inquirer Landline No"); 
columnhead.add("Inquirer Work Place"); 

Этот код ничего не делает, потому что вместо этого вы не используете columnHead для создания новой TableModel.

tbldata.add(row); 

Это может добавить данные в вектор, но опять-таки не использовать вектор для создания TableModel

Отъезд TableFromDatabaseExample код найден в таблице Из базы данных для общего кода для загрузки JTable из базы данных.

+0

У меня есть данные в моей таблице Inquiry_Master_Date, но при попытке получить данные из таблицы он отображает исключение в виде исключения по току. –

+0

Я проверил свой комментарий на части столбца и использовал System.out.println() данные извлекаются из таблицы и отображаются в консоли, но когда я раскомментирую часть столбца в колонке, снова появляется ошибка java.null.point , Можете ли вы, пожалуйста, подсказать, что не так с моим кодом. –

+0

Я не могу выполнить или отлаживать ваш код, поэтому знаю, что я не знаю, что не так. Если у вас есть NPE, вам нужно выяснить, что переменная имеет значение null и исправить проблему. Я предоставил вам рабочий код. Почему бы вам не начать с рабочего кода? – camickr

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