我是新手編程,我找不出如何解決此錯誤:java.sql.SQLEception :參數索引超出範圍(1>參數數量,即0)。第一個JFrame運行,我得到它連接到數據庫的消息,但彈出錯誤,並且沒有任何內容保存到我的數據庫中。 這裏是我的代碼:?錯誤java.sql.SQLEception:參數索引超出範圍(1>參數數量,它是0)
import java.sql.*;
import javax.swing.*;
public class SaveData extends javax.swing.JFrame {
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
public SaveData() {
initComponents();
}
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
conn=MySQLConnect.ConnectDB();
String Sql="Select * from TripData";
try{
pst=conn.prepareStatement(Sql);
pst.setString(1, txtTripDate.getText());
pst.setString(2, txtStartDest.getText());
pst.setString(3, txtEndDest.getText());
pst.setString(4, txtMileage.getText());
pst.setString(5, txtCost.getText());
if(rs.next()){
JOptionPane.showMessageDialog(null, "Trip Saved");
InfoSaved s=new InfoSaved();
s.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null, "Invalid Information",
"Please enter again", JOptionPane.ERROR_MESSAGE);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e); }
}
這個例外表明,這個問題可以在命令行應用程序中複製,這意味着它與Swing沒有任何關係。提示:1)不要添加不相關的標籤。 2)在命令行應用程序中調試SQL部分。第一。 –
如果要將某些內容保存到數據庫中,SELECT語句不會對您有所幫助。嘗試插入。 – Eran
你在SQL中沒有參數標記('?'),所以你認爲'setString(1,...)'會做什麼,爲什麼? ---另外,如果代碼可以得到那麼多,'rs.next()'將會失敗並返回'NullPointerException'。 ---最後,你認爲'SELECT' SQL語句的作用是什麼,爲什麼? *提示:*它不會*保存*到數據庫。 – Andreas