プログラムを実行するたびに次のエラーが発生します。JDBC - 結果セットに現在の行エラーがありません
com.microsoft.sqlserver.jdbc.SQLServerException:結果セットの現在の行が ではありません。
プログラムは、MySQLデータベースからユーザーが選択したデータを印刷することになっています。 SQLコードを問題なくクエリーとして実行するので、Javaプログラムに問題がある理由がわかりません。
// Use the JDBC driver
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
import java.util.Scanner;
public class SQLTest {
public static void main(String[] args) {
String numOfEmployees, username, password, selectSQL, results;
int variableSelection;
//Creates scanner object and asks for username and password.
Scanner input = new Scanner(System.in);
System.out.println("Username: ");
username = input.next();
System.out.println("Password: ");
password = input.next();
//Logs into MySQL database with given username and password.
String connectionString =
"jdbc:sqlserver://steffentest.database.windows.net:1433;"
+ "database=testdb;"
+ "user=" +username+ "@steffentest;"
+ "password="+password+";"
+ "encrypt=true;"
+ "trustServerCertificate=false;"
+ "hostNameInCertificate=*.database.windows.net;"
+ "loginTimeout=30;";
// Declare the JDBC objects.
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
connection = DriverManager.getConnection(connectionString);
System.out.println("Successfully logged in...\n");
System.out.println("Number of employees to view: ");
numOfEmployees = input.next();
System.out.println("What information would you like to see?");
System.out.println("---------------------");
System.out.println("1) Company Name");
System.out.println("2) Email Address");
System.out.println("3) Phone Number");
System.out.println("---------------------");
variableSelection = input.nextInt();
switch (variableSelection)
{
case 1:
statement = connection.createStatement();
selectSQL = "SELECT TOP " + numOfEmployees + "Title, FirstName, LastName, CompanyName from SalesLT.Customer";
resultSet = statement.executeQuery(selectSQL);
results = "Name: " + resultSet.getString(2) + " " + resultSet.getString(3) + "\nCompany: " + resultSet.getString(4) + "\n";
System.out.println("");
while (resultSet.next())
{
System.out.println(results);
}
break;
case 2:
statement = connection.createStatement();
selectSQL = "SELECT TOP " + numOfEmployees + "Title, FirstName, LastName, EmailAddress from SalesLT.Customer";
resultSet = statement.executeQuery(selectSQL);
results = "Name: " + resultSet.getString(2) + " " + resultSet.getString(3) + "\nEmail Address: " + resultSet.getString(4) + "\n";
System.out.println("");
while (resultSet.next())
{
System.out.println(results);
}
break;
case 3:
statement = connection.createStatement();
selectSQL = "SELECT TOP " + numOfEmployees + "Title, FirstName, LastName, PhoneNumber from SalesLT.Customer";
resultSet = statement.executeQuery(selectSQL);
results = "Name: " + resultSet.getString(2) + " " + resultSet.getString(3) + "\nPhone Number: " + resultSet.getString(4) + "\n";
System.out.println("");
while (resultSet.next())
{
System.out.println(results);
}
break;
default:
System.out.println("Please enter a number 1-3.");
break;
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (connection != null) try { connection.close(); } catch(Exception e) {}
if (statement != null) try { statement.close(); } catch(Exception e) {}
if (resultSet != null) try { resultSet.close(); } catch(Exception e) {}
input.close();
}
}
}