【问题标题】:Error getting balance for debit-credit-sdate,No data in MS ACCESS获取借方-贷方-日期的余额时出错,MS ACCESS 中没有数据
【发布时间】:2017-03-03 10:10:09
【问题描述】:

获取借方-贷方-日期的余额时出错

 <%@ 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- 用户名 AccNo 借方贷方余额 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

像这样。

【问题讨论】:

    标签: java sql jsp ms-access


    【解决方案1】:

    这里有一个明显的问题:(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");

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

    【讨论】:

    • 您好,根据您的建议,我正在实施这些,但没有取得成功,即使可能,您能否描述并正确编辑过去的整个 JSP 我的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多