2014-02-26 6 views
0

SQL 쿼리를 사용하여 기존 데이터베이스 테이블에 데이터 데이터를 추가하고 있습니다. 'Room_Resource'및 'Quantity'열에 데이터를 추가하고 싶습니다. 시스템은 예약을 허용하도록 설계되었으며 tblBookings 테이블에 예약을 추가하려고합니다. 아래 코드는 JButton 클릭 기능에서 가져옵니다.Java SQL을 사용하여 테이블에 데이터 추가

  • Room_Resource에 추가하려는 값은 시스템에서 선택한 테이블에서 가져온 이름입니다. 이 'resourceChosenString'에 대한 변수를 선언했습니다.
  • 수량에 추가하려는 값은 콤보 상자와 관련하여 선언 한 '수량'변수의 값입니다.

    int selectedResourceRow = tblResources.getSelectedRow();  
    Object resourceChosen = tblResources.getValueAt(selectedResourceRow,1); 
    String resourceChosenString = resourceChosen.toString(); 
    int Quantity = cmbQuantity.getSelectedIndex(); 
    

    내가 다음 SQL 문을 가지고 :

    String sql = ("INSERT INTO tblBookings (Room_Resource,Quantity) VALUES (" + resourceChosenString + " ', ' " + Quantity + " ',) "); 
    

    을 그리고 다음 코드를 실행 : 현재

    try{ 
    pst = conn.prepareStatement(sql); 
    pst.execute(); 
    JOptionPane.showMessageDialog(null, "Added"); 
    } catch (Exception e){ 
    JOptionPane.showMessageDialog(null, "Error Adding Booking"); 
    } 
    

    이 나를를 제공 여기

내 선언하다 테이블에 데이터를 추가하려고 시도 할 때 오류가 발생하여 다른 사람이 있었는지 궁금해했습니다. 제안?

또한 외부 테이블과 테이블에 데이터를 추가 할 때 열이 비어있을 수 있으므로 테이블에 두 개 이상의 열이있는 것이 문제 일 수 있습니다. 이것이 문제가 될 수 있다면, 누군가 그 문제를 해결할 수있는 방법을 말해 줄 수 있습니까? null 함수가 있으면 값 대신 사용할 수 있습니다.

+1

오류는 무엇입니까? 스택 추적으로 게시물을 업데이트하십시오. – PopoFibo

답변

0

생성하는 SQL이 유효하지 않으며 다음과 같이 표시됩니다.

INSERT INTO tblBookings (Room_Resource,Quantity) VALUES (resource ', ' 1 ',) 
                 ^   ^
              missing quote  extraneous comma 

더러워야하며, 여전히 PreparedStatement을 사용하는 것이 좋습니다.

String sql = "insert into tblBookings (Room_Resource,Quantity) values (?, ?)"; 
PreparedStatement pst = conn.prepareStatement(sql); 
pst.setString(1, resourceChosenString); 
pst.setInt(2, quantity); //variable names are not capitalised by convention 
pst.execute(); 
0

사용중인 데이터베이스와 사용중인 오류 메시지를 알려주십시오. 하지만 박쥐를 막 벗어나면 SQL 문자열이 올바르게 형식화되지 않은 것처럼 보입니다. 질문에 잘못 입력했는지 또는 코드의 구문 오류가 간단한 지 여부는 알 수 없습니다.

다만, 그것이 있어야 SQL 문 모양을 당신이와 엉덩이에서 촬영

: resourceChosenString가 당신이 왼쪽에있는 작은 따옴표를 놓치고있어 (작은 따옴표로 포장되어야한다

String sql = "INSERT INTO tblBookings (Room_Resource,Quantity) VALUES ('" + resourceChosenString + "', " + Quantity + ")"; 

공지 것을). 또한, 나는 당신이 작은 따옴표로 숫자를 싸는 것으로 생각하지 않는다. (나는 당신이 사용하는 데이터베이스를 모르기 때문에 잘못 될 수있다.)

Qwerky가 맞습니다. PreparedStatement을 사용해야합니다.

관련 문제