Почему данные в моей таблице не могут быть не обновлены? - PullRequest
0 голосов
/ 07 декабря 2010

Я хочу обновить данные из моей базы данных, используя Java. Я успешно установил соединение и при обновлении таблицы данные не обновляются в базе данных.

Мой SQL такой:

UPDATE  tbl_Bus SET Bus_locX= 520.0,Bus_locY=220.0 WHERE Bus_ID=1

Этот оператор не обновляет мою таблицу, хотя он работает нормально, когда я использую его непосредственно в редакторе sql в MS Access.

Мой таб_Бус

Bus_ID,Bus_LocX,Bus_LocY,Bus_RouteID

и соответствующие данные 1,1,1,1 даже после запуска моего приложения.

Мои коды

public boolean update_busLoc(double x,double y,int id)
{
    String query="UPDATE  tbl_Bus SET Bus_locX= "+ x +",Bus_locY="+y + " WHERE Bus_ID="+id;
    System .out.println(query);
    if (DB_connection!=null){
            try{
                     statement.execute(query);
                     return true;

                 }
            catch(SQLException e){
                    e.printStackTrace();
                return false;
            }
    }
    else{
        System.out.println("Connection is not set up");
        return false;
    }

}

Я использую MS Access 2007 Я могу выполнить операторы SELECT, и он работает нормально, но с обновлением у меня возникают проблемы .. Как мне с этим разобраться?

Ответы [ 4 ]

3 голосов
/ 07 декабря 2010

заменить

stmt.execute(query);

на

stmt.executeUpdate(query);
2 голосов
/ 07 декабря 2010

Ваше соединение настроено на автокоммит?Это может быть проблемой

2 голосов
/ 07 декабря 2010

Используйте executeUpdate вместо execute

1 голос
/ 07 декабря 2010

Я надеюсь, что это полная справка

  1. Заменить execute на executeUpdate

  2. использовать подготовленный вместо оператора

    PreparedStatement pstmt= con.prepareStatement ("UPDATE tbl_Bus SET Bus_locX = ?, Bus_locY =? WHERE Bus_ID =?");pstmt.setDouble (1, x);pstmt.setString (2, y);pstmt.setInt (3, id);

     if (DB_connection!=null){
             try{
                   pstmt.executeUpdate();
                      return true;
    
    
    <pre><code>          }
         catch(SQLException e){
                 e.printStackTrace();
             return false;
         }
    
    } else {System.out.println («Соединение не установлено»);вернуть ложь;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...