我得到這個錯誤:SQL,嘗試比較2 int和得到錯誤「廣東話比較char和INT」
"java.sql.SQLSyntaxErrorException: No están soportadas las comparaciones entre 'INTEGER' y 'CHAR (UCS_BASIC)'. Los tipos deben ser comparables. Además, los tipos de cadena también deben tener una intercalación coincidente. Si la intercalación no coincide, una posible solución es convertir los operandos para forzarlos a la intercalación por defecto (por ejemplo: SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')"
我的數據庫表有11個位置,一切都是一個varchar但第一個,這是一個int。
而且iI'從jtable
獲取數據,除了col 0之外,其他都是int,其餘都是字符串。
這裏是我的代碼:
int colActual = jTableNombre.getSelectedRow();
private void jButtonGuardarNombreActionPerformed(java.awt.event.ActionEvent evt) {
String nombre = (String) jTableNombre.getModel().getValueAt(colActual,1);
String director=(String) jTableNombre.getModel().getValueAt(colActual,2);
String año = (String) jTableNombre.getModel().getValueAt(colActual,3);
String generos = (String) jTableNombre.getModel().getValueAt(colActual,4);
String actores = (String) jTableNombre.getModel().getValueAt(colActual,5);
String pais = (String) jTableNombre.getModel().getValueAt(colActual,6);
String idioma = (String) jTableNombre.getModel().getValueAt(colActual,7);
String doblaje = (String) jTableNombre.getModel().getValueAt(colActual,8);
String subtitulos = (String) jTableNombre.getModel().getValueAt(colActual,9);
String ubicacion = (String) jTableNombre.getModel().getValueAt(colActual,10);
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql= "UPDATE MOVIES " +
"SET NOMBRE = '"+nombre+"', "+
"DIRECTOR = '"+director+"', "+
"AÑO = '"+año+"', "+
"GENEROS = '"+generos+"', "+
"ACTORES = '"+actores+"', "+
"PAIS = '"+pais+"', "+
"IDIOMA = '"+idioma+"', "+
"DOBLAJE = '"+doblaje+"', "+
"SUBTITULOS = '"+subtitulos+"', "+
"UBICACION = '"+ubicacion+"' "+
"WHERE ID = '"+id+"'";
stmt.executeUpdate(sql);
int i= stmt.executeUpdate(sql);
System.out.print(i);
if (i>0) {
JOptionPane.showMessageDialog(null, "Movie Updated");
}
else {
JOptionPane.showMessageDialog(null, "Movie dindt update");
}
}
catch(Exception e) {
System.out.println(e);
}
}
您正試圖設置應該是int的id作爲char,因爲錯誤消息告訴您 – Theyna
強制性[Bobby Tables](http://bobby-tables.com/)鏈接... – Amadan
謝謝回答@Theyna你能解釋一下嗎?即時通訊新的java/jdbc和im自己學習。謝謝。 –