单击“保存”时,数据未更新到数据库

时间:2014-03-04 07:54:03

标签: java jdbc

我的问题是将数据更新到数据库。我有一个带有四个按钮的表保存,编辑,删除,取消当我点击编辑数据库中的值将来到我的表然后我将编辑值并单击保存按钮然后它应该更新。但它没有得到更新,所以PLZ帮助我

try
{
    Class.forName("com.mysql.jdbc.Driver");

    System.out.println("driver loaded");
    System.out.println("Driver is loaded");
    Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/charms?user=root&password=root");
    System.out.println("Connection created");
    PreparedStatement ps =null;
    if(saveOrUpdate.equals("update"))
    {
        ps= ((java.sql.Connection) con).prepareStatement("update recipts set  R_RegNo_i=?, R_PatientId_v=?, R_BillAmt_f=?, R_Amount_f=?, R_BilledBy_v =?, R_PaymentMode_v=?, R_ChequeNo_v=?, R_ChequeDate_d=?, R_BankName_v=?, R_CCName_v=?, R_CCHolder_v=?, R_CCType_v=? where R_RecNo_i=? , R_RecDate_d=? , R_BillDate_d=? and R_PatBillNo_v=?");

        ps.setString(1,regNo);
        ps.setString(2,patId);
        ps.setString(3,billAmt);
        ps.setString(4,amt);
        ps.setString(5,billBy);
        ps.setString(6,payMode);
        ps.setString(7,cheNo);
        ps.setString(8,cheDate);
        ps.setString(9,bankName);
        ps.setString(10,ccName);
        ps.setString(11,ccHold);
        ps.setString(12,ccType);
        ps.setString(13,recNo);
        ps.setString(14,recDate);
        ps.setString(15,billDate);
        ps.setString(16,pbillNo);

        a1=ps.executeUpdate();
        if(a1==1)
        {
            System.out.println("Inserted");
            request.getSession().setAttribute("status1", "updatesuccess");
        }

    }
    else
    {

        ps= ((java.sql.Connection) con).prepareStatement("insert into recipts(R_RecNo_i ,R_RecDate_d ,R_BillDate_d ,R_PatBillNo_v ,R_RegNo_i ,R_PatientId_v,R_BillAmt_f  ,R_Amount_f  ,R_BilledBy_v  ,R_PaymentMode_v  ,R_ChequeNo_v  ,R_ChequeDate_d  ,R_BankName_v ,R_CCName_v ,R_CCHolder_v ,R_CCType_v) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

        ps.setString(1,recNo);
        ps.setString(2,recDate);
        ps.setString(3,billDate);
        ps.setString(4,pbillNo);
        ps.setString(5,regNo);
        ps.setString(6,patId);
        ps.setString(7,billAmt);
        ps.setString(8,amt);
        ps.setString(9,billBy);
        ps.setString(10,payMode);
        ps.setString(11,cheNo);
        ps.setString(12,cheDate);
        ps.setString(13,bankName);
        ps.setString(14,ccName);
        ps.setString(15,ccHold);
        ps.setString(16,ccType);

        a1=ps.executeUpdate();
        System.out.println("Inserted");
        request.getSession().setAttribute("status1", "success");
    }
}
catch(Exception e1)
{
    System.out.println(e1.getMessage());
    request.getSession().setAttribute("status1", "fail");
}

response.sendRedirect("receipts.jsp");

2 个答案:

答案 0 :(得分:1)

我认为你需要改变你的prepareStatement

... R_BillDate_d=? and R_PatBillNo_v=?");

这样的事情:

... R_BillDate_d=?, R_PatBillNo_v=?");

答案 1 :(得分:1)

你应该这样做:

update recipts 
    set  R_RegNo_i=?, R_PatientId_v=?, R_BillAmt_f=?, R_Amount_f=?, R_BilledBy_v =?, R_PaymentMode_v=?, R_ChequeNo_v=?, R_ChequeDate_d=?, R_BankName_v=?, R_CCName_v=?, R_CCHolder_v=?, R_CCType_v=? 
    where R_RecNo_i=? AND 
        R_RecDate_d=? AND 
        R_BillDate_d=? AND 
        R_PatBillNo_v=?