Java Oracle错误无效数字
我有一张这样的桌子:Java Oracle错误无效数字,java,sql,oracle,Java,Sql,Oracle,我有一张这样的桌子: ARITHMOS KOD DATE A B C 1 ΑΓΟ 01/08/2016 5 2 3 2 ΠΛΗ 02/08/2016 3 2 1 从netbeans程序中,我想插入name table、DATE和KOD,只获取符合条件的行 代码: 如果re==JOptionPane.YES\u选项{ 试一试{ stm=(OracleStatement) conn.createStatement(rs.TYPE_SCRO
ARITHMOS KOD DATE A B C
1 ΑΓΟ 01/08/2016 5 2 3
2 ΠΛΗ 02/08/2016 3 2 1
从netbeans程序中,我想插入name table、DATE和KOD,只获取符合条件的行
代码:
如果re==JOptionPane.YES\u选项{
试一试{
stm=(OracleStatement) conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_UPDATABLE);
rs = (OracleResultSet) stm.executeQuery(sql);
UpdateJTable();
/* while(rs.next()){
v0.setText(rs.getString("ARITHMOS"));
}*/
}
catch(Exception e1){
JOptionPane.showMessageDialog(null, e1);
}
}else if (re == JOptionPane.NO_OPTION) {
this.setVisible(true);
}
显示无效号码时出错。已修复:
public static ResultSet Consult(String consult){
Connection conn = ConnectDB();//connection to database
Statement declare;
try{
declare=conn.createStatement();
ResultSet rs=declare.executeQuery(consult);
return rs;
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
return null;
}
}
Code in Button:
String pote=ac3.getText();//chosen table name
String c=((JTextField)jdt1.getDateEditor().getUiComponent()).getText();//date as varchar2 set to database table
String d=((JTextField)jdt2.getDateEditor().getUiComponent()).getText();//date as varchar2 set to database table
String s0=(String)jcb1.getSelectedItem();//chosen item
String sql="SELECT * FROM "+pote+" WHERE Hmerominia BETWEEN '"+c+"' AND '"+d+"' AND KOD='"+s0+"'";
int re = JOptionPane.showConfirmDialog(this, "SEARCH?", "Confirm",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (re == JOptionPane.YES_OPTION) {
DefaultTableModel md=( DefaultTableModel)pel300.getModel();
md.setRowCount(0);
rs=(OracleResultSet) Connect.Consult(sql);//Connect class
try{
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
v.add(rs.getString(5));
v.add(rs.getString(6));
v.add(rs.getString(7));
v.add(rs.getString(8));
md.addRow(v);
pel300.setModel(md);
pel300.setShowGrid(true);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}else if (re == JOptionPane.NO_OPTION) {
this.setVisible(true);
}
所有变量都设置为什么-sql最终是什么?表实际调用了什么?您应该使用绑定变量,但这似乎是一个次要问题。您缺少了围绕ΓΓΓΓΓΓΓΓΓΓΓΓΓΓ的单引号。您的连接sql看起来像和KOD=ΑΓΓΓΓedΑΓö。但正如前面所建议的,您应该绑定参数,而不是直接在字符串中串联值。我用了单引号,但现在说的是无效数字。您认为这是为什么?是否要尝试调试新错误?是否要以正确的方式绑定参数?
public static ResultSet Consult(String consult){
Connection conn = ConnectDB();//connection to database
Statement declare;
try{
declare=conn.createStatement();
ResultSet rs=declare.executeQuery(consult);
return rs;
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
return null;
}
}
Code in Button:
String pote=ac3.getText();//chosen table name
String c=((JTextField)jdt1.getDateEditor().getUiComponent()).getText();//date as varchar2 set to database table
String d=((JTextField)jdt2.getDateEditor().getUiComponent()).getText();//date as varchar2 set to database table
String s0=(String)jcb1.getSelectedItem();//chosen item
String sql="SELECT * FROM "+pote+" WHERE Hmerominia BETWEEN '"+c+"' AND '"+d+"' AND KOD='"+s0+"'";
int re = JOptionPane.showConfirmDialog(this, "SEARCH?", "Confirm",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (re == JOptionPane.YES_OPTION) {
DefaultTableModel md=( DefaultTableModel)pel300.getModel();
md.setRowCount(0);
rs=(OracleResultSet) Connect.Consult(sql);//Connect class
try{
while(rs.next()){
Vector v=new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
v.add(rs.getString(5));
v.add(rs.getString(6));
v.add(rs.getString(7));
v.add(rs.getString(8));
md.addRow(v);
pel300.setModel(md);
pel300.setShowGrid(true);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}else if (re == JOptionPane.NO_OPTION) {
this.setVisible(true);
}