내가 업데이트 할 때 내가 얻을데이터 잘림 오류 (너무 오래 열 item_code 데이터)
데이터 잘림 오류 (데이터가 너무 오래 열 item_codeat 행 번호에 대한)
나는 varchar(45)
을 사용하고 있습니다 DB에 itemcode
에 대한.
String category="";
String item_code = txt_inventory_item_code.getText();
String item_name = txt_inventory_item_name.getText();
Format formatter = new SimpleDateFormat("yyyy-MM-dd");
String date = formatter.format(txt_inventory_date.getDate());
String expiry_date = formatter.format(txt_inventory_expiry_date.getDate());
int quantity=Integer.parseInt(txt_inventory_quantity.getText());
double unit_price=Double.parseDouble(txt_inventory_unit_price.getText());
try{
st = conn.createStatement();
String SQL = "Update inventory SET "
+ "item_code='"+txt_inventory_item_code+"',"
+ "item_name='"+txt_inventory_item_name+"',"
+ "date='"+formatter.format(txt_inventory_date.getDate())+"',"
+ "expiry_date='"+formatter.format(txt_inventory_expiry_date.getDate())+"',"
+ "quantity='"+txt_inventory_quantity+"',"
+ "unit_price='"+txt_inventory_unit_price+"' WHERE inventory_id Like "+txt_inventory_inventory_id.getText();
st.executeUpdate(SQL);
JOptionPane.showMessageDialog(null,"Updated Successfully");
}
catch (SQLException | HeadlessException e)
{
JOptionPane.showMessageDialog(null,e);
}
http://stackoverflow.com/help/mcve를 게시하십시오. – c0der
글쎄, 오류는 항목 코드가 varchar (45)에 비해 너무 길다는 것입니다. 또한 텍스트 필드 중 하나에 작은 따옴표가 포함되면 코드가 실패하기 때문에 준비된 명령문 (http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)을 반드시 배워야합니다. , 그리고 SQL 주입 공격의 대상이됩니다. 또한 데이터베이스 별 로케일 별 형식으로 형식을 지정하지 않고 날짜를 날짜로 저장할 수 있습니다. 마지막으로 코드가 읽기 쉽고 오류가 발생하기 쉽습니다. –