Kurt Jimenez Ответов: 2

Недопустимое имя столбца


Я использую SQL server и Netbeans, и это дало мне эту ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: имя столбца Max(CarNumber) недопустимо.

от :
Statement s = con.createStatement();
           
      ResultSet rs = s.executeQuery("select Max(CarNumber) from CarRegistration");
            rs.next();
            rs.getString("Max(CarNumber)");

            if (rs.getString("Max(CarNumber)")== null) 
            {
                txtregno.setText("C0001");
            } 
            else 
            {
              long id = Long.parseLong(rs.getString("Max(CarNumber)").substring(2,rs.getString("Max(CarNumber)").length()));
               id++;
             txtregno.setText("C0" + String.format("%03d", id));
            }


Что я уже пробовал:

Я перепробовал все, но все равно получил ошибку. что-нибудь не так с синтаксисом?

Kris Lantz

Существует ли столбец "CarNumber" в БД?

Kurt Jimenez

да, я использую microsoft sql server

2 Ответов

Рейтинг:
20

Wendelius

Поскольку вы используете агрегат, вам нужно дать псевдоним столбцу, если вы хотите ссылаться на него по имени. Например

Statement s = con.createStatement();

ResultSet rs = s.executeQuery("select Max(CarNumber) AS MaxCarNo from CarRegistration");
rs.next();
rs.getString("MaxCarNo");

if (rs.getString("MaxCarNo")== null) {
...


Kris Lantz

Опереди меня. Возьми мои звезды...

Wendelius

Спасибо.

Kurt Jimenez

Да вы правы bruhhh. Спасибо :) и да благословит вас бог O:) вы спасли мой день...

Wendelius

Рад быть полезным :)

Рейтинг:
2

RickZeeland

Это, вероятно, потому, что это не строковое значение, попробуйте что-то вроде этого:

int max = rs.getInt(1);

Я не программист на Java, поэтому синтаксис может быть неправильным :)