JSP SQL SERVER ResultSet всегда возвращает пустой - PullRequest
1 голос
/ 19 мая 2019

Я делаю два запроса к базе данных SQL Server, первый запрос возвращает Result Set с данными, но второй запрос всегда возвращает Result Set пустой. Если я делаю запрос в SQL SERVER, он делает это хорошо. Я попытался сделать еще один запрос: SELECT TOP 10 * FROM TABLE и всегда возвращает пустой.

 <%
    String url,ssql;
    int i,j,k;
    int reg[]=new int[256];
    try{
        Class.forName("com.microsofto.sqlserver.jdbc.SQLServerDriver");
        url="jdbc:sqlserver://localhost/;databaseName=acsc;user=user;password=1234";
        Connection conn = DriverManager.getConnection(url);
        Statement stc = conn.createStatement();
        ssql="SELECT Nombre,max(Registro) FROM Tabla Group by Nombre order by Nombre";
        ResultSet rsc= stc.executeQuery(ssql);
        i=1;
        while(rsc.next()){
            reg[i]=rsc.getInt(2);
            i++;
        }
        j=0;
        do{
            //ssql="SELECT * FROM Tabla Where     Registro="+String.valueOf(reg[j]);
            ssql="SELECT TOP 10 * FROM Tabla";
            rsc= stc.executeQuery(ssql);
            if(!(rsc.getRow()==0)){
                out.println(rsc.getString(1)+" "+rsc.getString(2)+" "+rsc.getString(3));    
            }else{
                out.println("vacio");
            }
            j++;
        }while(j<i);
    }catch(SQLException se){
        out.println(se.toString()); 
    }
%>

Ответы [ 2 ]

2 голосов
/ 19 мая 2019

Есть две проблемы с вашим кодом. Единственное, что вам нужно исправить, это то, что вы не используете параметры в своем запросе SQL. См

public static void executeStatement(Connection con) {
    try(PreparedStatement pstmt = con.prepareStatement("SELECT LastName, FirstName FROM Person.Contact WHERE LastName = ?");) {
        pstmt.setString(1, "Smith");
        ResultSet rs = pstmt.executeQuery();

        while (rs.next()) {
            System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
        }
    }
    // Handle any errors that may have occurred.
    catch (SQLException e) {
        e.printStackTrace();
    }
}

Использование оператора SQL с параметрами

0 голосов
/ 22 мая 2019

Спасибо за ваш ответ и извините за то, что не ответили раньше.Я пытался использовать prepareStatement, но ResultSet продолжал возвращаться пустым.Я наконец нашел, где у меня была проблема, если! (Rsc.getRow () == 0)) всегда возвращал 0, даже если у ResulSet были записи.Я удалил эту часть программы, и я поместил в то время как rsc.next (), и он работает правильно.Какая вторая проблема в моем коде?Спасибо, привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...