java.sql. sql语法错误异常:不支持“INTEGER”和“CHAR(UCS_BASIC)”之间的比较。类型必须是可比较的。字符串类型还必须具有匹配的排序规则。如果排序规则不匹配,可能的解决方案是强制转换操作数以将它们强制转换为默认排序规则(例如,SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128))=“T1”)
当我点击编辑按钮的错误也显示在我的删除按钮这里是我的代码你能帮助我吗
这是编辑按钮私有void UpdateBtnMouseClicked(java.awt.event.MouseEvent evt)的代码{
if(SerialNumber.getText().isEmpty()||ProductName.getText().isEmpty()||DateAcquired.getText().isEmpty()||Quantity.getText().isEmpty()||Description.getText().isEmpty())
{
JOptionPane.showMessageDialog(this, "Missing Information");
}else {
try {
Con = DriverManager.getConnection("jdbc:derby://localhost:1527/Inventorydb","User1", "1220");
String UpdateQuery = "Update User1.PRODUCTTBL set ProductName='"+ProductName.getText()+"'"+",DateAcquired='"+DateAcquired.getText()+"'"+",Quantity='"+Quantity.getText()+"'"+",Description='"+Description.getText()+"'"+" where SerialNumber="+"'"+SerialNumber.getText()+"'";
Statement Add = Con.createStatement();
Add.executeUpdate(UpdateQuery);
JOptionPane.showMessageDialog(this, "Product Updated Successfully");
SelectProd();
}catch(Exception e){
e.printStackTrace();
}
}
}
这是删除按钮私有void DeleteBtnMouseClicked(java.awt.event.MouseEvent evt)的代码{
if(SerialNumber.getText().isEmpty())
{
JOptionPane.showMessageDialog(this, "Enter the SerialNumber to be Deleted");
}
else
{
try{
Con = DriverManager.getConnection("jdbc:derby://localhost:1527/Inventorydb","User1", "1220");
String ID = SerialNumber.getText();
String Query = "Delete from User1.PRODUCTTBL where SERIALNUMBER="+"'"+ID+"'";
Statement Add = Con.createStatement();
Add.executeUpdate(Query);
SelectProd ();
JOptionPane.showMessageDialog(this, "Product Deleted Successfully");
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
1条答案
按热度按时间3xiyfsfu1#
错误信息是非常描述性的。它指向整数和字符之间不兼容的比较。
当你在编辑和删除中得到同样的错误时,我怀疑SerialNumber列。尝试直接在数据库查询窗口中执行查询来确认这一点。
尝试将char转换为integer。