2016-10-21 71 views
0
对借记信用SDATE

错误获取平衡,在MS Access

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 
    <%@page import="java.sql.*"%> 
    <%@ page import="java.util.Calendar" %> 
    <% 
    //java Code 
    String date = (new java.util.Date()).toString(); 
    String UserName = request.getParameter("UserName"); 
    String CusId= request.getParameter("CusId"); 
    String AccountNo = request.getParameter("AccountNo"); 
    String Debit = request.getParameter("Debit"); 
    String Credit=request.getParameter("Credit"); 
    String Balance=request.getParameter("Balance"); 
    String sDate=request.getParameter("sDate"); 
    try 
    { 
    String s="jdbc:odbc:Database1"; 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    Connection conn=DriverManager.getConnection(s); 
    Statement smt=conn.createStatement(); 
    Calendar calendar = Calendar.getInstance(); 
    java.sql.Date startDate = new java.sql.Date(calendar.getTime().getTime()); 
    String sql= "SELECT sDate, (SUM(Debit)*-1) + SUM(Credit)Balance FROM abcbank GROUP BY sDate"; 
    ResultSet result = smt.executeQuery(sql); 
    int count = 0; 
    while (result.next()) 
    { 
    result.getString(1,"Debit"); 
    result.getString(2,"Credit"); 
    result.getString(3,"Balance"); 
    result.getDate(4,startDate); 

    } 

    String update= "UPDATE abcbank SET Balance =Debit + Balance WHERE AccountNo="+AccountNo+" "; 
    PreparedStatement statement = conn.prepareStatement(update); 
    //statement.setString(1,"AccountNo"); 
    int rowsUpdated = statement.executeUpdate(); 
    if (rowsUpdated ==0) 
    { 
    out.println("This Emp does not Exists!"); 
    } 
    else if(rowsUpdated ==1) 
    { 
    out.println("An existing user was updated successfully!"); 
    } 
    conn.close(); 
    } 
    catch(Exception ex) 
    { 
    System.err.println(ex.getMessage()); 
     } 
     %> 
    </body> 
    </html> 

数据库

错误获取平衡,没有数据AccID-用户名登录号借方贷方余额SDATE

如何与任何银行存折类型一样,为流动账户数据库取得平衡。

我'试图上述代码JSP页面开发然而每当运行没有出现错误,但在数据库中没有数据响应,并且当我只更新的帐户然后每个特定帐户[类型sdatewise的数目]正在更新

ano De. Cre.B.sadate 
56 100 0 100 12/09/2006 
57 000 50 50 13/09/2006 
56 00 60 40 14/09/2009 

这样子。

回答

0

这里有一个明显的问题:(SUM(Debit)*-1) + SUM(Credit)Balance。它应该是SUM(Credit)-SUM(Debit) AS Balance假设借贷是始终存在的,否则它应该是SUM(Nz(Credit,0))-SUM(Nz(Debit,0)) AS Balance

而且这里:

result.getString(1,"Debit"); 
result.getString(2,"Credit"); 
result.getString(3,"Balance"); 
result.getDate(4,startDate); 

似乎不是实际做任何事情,但也许这就是它的外观给我,因为我不不使用jsp。但是,

您的查询只返回字段:sDateBalance。更改SELECT sDate,SELECT sDate AS startDate, SUM(Nz(Debit,0)) AS Debit, SUM(Nz(Credit,0)) AS Credit,

result.getDate(4,startDate);应该也可能是result.getDate(4,"startDate");

这些只是最明显的问题;可能还有更多。

+0

你好,根据你的建议,我正在实现这些,即使可能,也没有实现成功,你能否描述和过去正确地编辑上面的整个JSP My Code。 – Manish