ok, смотря на библиотеку, которую вы используете, я нашел это .setContentHolder(new ViewHolder(view))
, поэтому измените свой код с
DialogPlus dialog = DialogPlus.newDialog(this.context)
.setContentHolder(viewHolder)
.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
}
})
.setExpanded(true) // This will enable the expand feature, (similar to android L share dialog)
.create();
на
DialogPlus dialog = DialogPlus.newDialog(this.context)
.setContentHolder(new ViewHolder(dialogView ))
.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
}
})
.setExpanded(true) // This will enable the expand feature, (similar to android L share dialog)
.create();
У вас есть синтаксическая ошибка, замените на:
UPDATE library_students.book SET CopiesInBorrow= ?, AvailableCopies=? WHERE BookID=?
Не используйте AND
между столбцами, которые вы хотите обновить. Вы можете использовать AND
в части WHERE
, чтобы применить необходимые условия.
Если вы хотите что-то вроде этого:
UPDATE library_students.book SET CopiesInBorrow= ? WHERE AvailableCopies=? AND BookID=?
, тогда использование AND
будет допустимым.
Из вашего кода я вижу, что вы просто хотите увеличить значение столбца и уменьшить еще один. Вам не нужно сначала находить эти значения в таблице, а затем вносить изменения.
Вы можете выполнить это утверждение:
UPDATE library_students.book SET CopiesInBorrow = CopiesInBorrow + 1, AvailableCopies = AvailableCopies - 1 WHERE BookID = ?
Так что измените на это:
public void updateFields(BorrowedBook borrowedBook) throws SQLException {
PreparedStatement pstmt;
try {
Statement stmt = con.createStatement();
pstmt = con.prepareStatement("UPDATE library_students.book SET CopiesInBorrow = CopiesInBorrow + 1, AvailableCopies = AvailableCopies - 1 WHERE BookID = ?");
pstmt.setString(1, getBookID(borrowedBook));
pstmt.executeUpdate();
rs.close();
}catch (SQLException ex) {
ex.printStackTrace();
}
}