2012-08-22 63 views
1

我有一個MySql表,其中有一個名爲payslip_no的列,它被設置爲AUTO_INCREMENT。我想將此自動遞增值設置爲頁面加載時的文本框的值。如何將數據庫表的自動遞增列值綁定到文本框?

另一種方法是我想以編程方式增加此數字,而不將列設置爲'AUTO_INCREMENT'。以下是代碼:

public void get_payslip_no() 
{ 

int n1 =0; 
try 
{ 
rs2=st2.executeQuery("select max(payslip_no) from tbl_add_payroll"); 
if(rs2.next()) 
{ 
n1=rs2.getInt("payslip_no"); 
n1=n1+1; 
String n2 = Integer.toString(n1); 
txt_payslip_no.setText(n2); 
System.out.println(n2);     
} 
}//try 
catch(SQLException e2) 
{ 
JOptionPane.showMessageDialog(this,"Payroll-Serial no Storing Error!!!","Serial No Error",JOptionPane.INFORMATION_MESSAGE);  
}//catch 
} 

此代碼拋出一個NullPointerException,因爲當前數據庫爲空。我該如何解決這個問題?

+0

有ü試圖手動填充數據庫內的一列此代碼後..? –

+0

你可以在這裏添加異常日誌嗎? –

+0

@ Dipen: - 如果我手動添加一條記錄,它的工作。但它不可行,我想這樣做,而無需手動添加記錄。 – Harshali

回答

2

你可以試試這個答案.. :)

int no=101; 
    int no1; 
try 
     { 
      dbStatement = con.createStatement(); 
      dbResult= dbStatement.executeQuery("select payslip_no from tbl_add_payroll ORDER BY payslip_no DESC LIMIT 1"); 

      if(dbResult.next()==false) 
      { 
       jTextField3.setText(String.valueOf(no)); 

      } 
     else 
      {   
      dbResult= dbStatement.executeQuery("select payslip_no from tbl_add_payroll ORDER BY payslip_no DESC LIMIT 1");  
        while(dbResult.next()) 

          { 
          deptno=dbResult.getInt("payslip_no"); 

          } 


          no1=deptno+1; 
          jTextField3.setText(String.valueOf(no1)); 
      } 


    }catch(Exception E) 
    { 

    } 
+0

: - 非常感謝你的工作。 – Harshali

+0

@harshali歡迎.. :) –

相關問題