#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 — это число.