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,因为当前数据库为空。我该如何解决这个问题?

4

1 回答 1

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)
     {

     }
于 2012-08-22T05:33:46.843 回答