Проблема с набором результатов Java — исключение преобразования

#java #sql-server #resultset

#java #sql-server #результирующий набор

Вопрос:

На моем сервере есть база данных, к которой я обращаюсь через свое Java-приложение. Сначала это была база данных MySQL, но теперь мы сменили сервер и используем SQL.

Теперь я переписываю код, и у меня возникает исключение, когда я читаю из него.

В одной из функций я использую следующий select:

   String sql2="SELECT * FROM "" item1 "" WHERE name=? or codeID=?";
            pst2=con.prepareStatement(sql2);
            pst2.setString(1, listBox.getSelectedValue());
            pst2.setString(2, listBox.getSelectedValue());
            rs2=pst2.executeQuery();
  

Когда я пытаюсь войти в цикл while:

 while(rs2.next()){
//some code
}
  

Я получаю эту ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: ошибка преобразования при преобразовании значения nvarchar ‘[некоторое значение varchar]’ в тип данных int .

Я понимаю, в чем проблема, но я не уверен, как ее решить. Я никогда не сталкивался с этой проблемой, когда работал с MySQL.

Комментарии:

1. … Вы могли бы попробовать читать тексты не так, как если бы они были числами, а так, как если бы они были текстами.

2. Ну, у вас в вашем цикле есть код, подобный rs.getInt(...) столбцу nvarchar. Вам нужно прочитать String из него. Затем вы проанализируете значение в числовом значении.

3. это codeID число? случайно?

4. Да, CodeID — это число.