我的问题是将数据更新到数据库。我有一个带有四个按钮的表保存,编辑,删除,取消当我点击编辑数据库中的值将来到我的表然后我将编辑值并单击保存按钮然后它应该更新。但它没有得到更新,所以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");
答案 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=?