Intereting Posts
Существует ли булев тип в базах данных оракула? Как выполнить SQL Insert или Replace как операцию без изменения первичного ключа? Задача TSQL рассчитать разницу между двумя датами внутри одной таблицы Как использовать GROUP BY для подсчета новой категории и старых категорий сразу MySQL GROUP BY DateTime +/- 3 секунды Как производить фантомные чтения? Неправильно в select statement в ORACLE JOOQ извлекает запись из таблицы и вставляет ее в другую таблицу Как вставить строку с идентификатором автоинкремента в таблице с несколькими первичными ключами? Как ввести специальные символы, такие как «&» в базе данных оракула? найти недостающие значения из набора значений, используя SQL Создание столбца суммарной суммы в MySQL Суммируйте столбец таблицы, основанный на другой сумме таблицы Найти строки, которые имеют одинаковое значение в столбце в MySQL Oracle 10g – запись результатов запросов в файл

java.sql.SQLException: Слишком мало параметров. Ожидаемые 2

Это мой класс javax.swing . Но он всегда выдает ошибку java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2 java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2 . Не совсем уверен, что вызывает его. Где ошибка?

 import java.awt.event.*; import java.awt.*; import java.sql.*; import javax.swing.*; public class SwingSearchApp extends JFrame implements ActionListener { //Initializing Components private static final long serialVersionUID = 1L; JLabel lb, lb1, lb2, lb3, lb4, lb5; JTextField tf1, tf2, tf3, tf4, tf5; JButton btn; //Creating Constructor for initializing JFrame components SwingSearchApp() { //Providing Title super("Fetching Student Information"); lb5 = new JLabel("Enter Name:"); lb5.setBounds(20, 20, 100, 20); tf5 = new JTextField(20); tf5.setBounds(130, 20, 200, 20); btn = new JButton("Submit"); btn.setBounds(50, 50, 100, 20); btn.addActionListener(this); lb = new JLabel("Fetching Search Information From Database"); lb.setBounds(30, 80, 450, 30); lb.setForeground(Color.red); lb.setFont(new Font("Serif", Font.BOLD, 20)); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 500); lb1 = new JLabel("U_Name:"); lb1.setBounds(20, 120, 100, 20); tf1 = new JTextField(50); tf1.setBounds(130, 120, 200, 20); lb2 = new JLabel("U_Mail:"); lb2.setBounds(20, 150, 100, 20); tf2 = new JTextField(100); tf2.setBounds(130, 150, 200, 20); lb3 = new JLabel("U_Pass:"); lb3.setBounds(20, 180, 100, 20); tf3 = new JTextField(50); tf3.setBounds(130, 180, 200, 20); lb4 = new JLabel("U_Country:"); lb4.setBounds(20, 210, 100, 20); tf4 = new JTextField(50); tf4.setBounds(130, 210, 100, 20); setLayout(null); //Add components to the JFrame add(lb5); add(tf5); add(btn); add(lb); add(lb1); add(tf1); add(lb2); add(tf2); add(lb3); add(tf3); add(lb4); add(tf4); //Set TextField Editable False tf1.setEditable(false); tf2.setEditable(false); tf3.setEditable(false); tf4.setEditable(false); } public void actionPerformed(ActionEvent e) { //Create DataBase Coonection and Fetching Records try { String str = tf5.getText(); String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "C:\\users\\ppreeti\\employee.accdb"; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection(url, "", ""); //Connection con = DriverManager.getConnection("jdbc:oracle:thin:@mcndesktop07:1521", "sandeep", "welcome"); PreparedStatement st = con.prepareStatement("select * from emp where uname=?"); st.setString(1, str); //Excuting Query ResultSet rs = st.executeQuery(); if (rs.next()) { String s = rs.getString(1); String s1 = rs.getString(2); String s2 = rs.getString(3); String s3 = rs.getString(4); //Sets Records in TextFields. tf1.setText(s); tf2.setText(s1); tf3.setText(s2); tf4.setText(s3); } else { JOptionPane.showMessageDialog(null, "Name not Found"); } //Create Exception Handler } catch (Exception ex) { System.out.println(ex); } } //Running Constructor public static void main(String args[]) { new SwingSearchApp(); } } 

Структура моей таблицы в базе данных Access содержит следующие поля: – uname , umail , upass , upcountry .

Это может произойти, если uname не существует в вашей таблице. Проверьте правописание / дело.

Ссылка: здесь

Обновить:

Постарайтесь немного изменить код, чтобы просто запустить простой запрос и получить набор результатов. Это позволит вам запрашивать имена столбцов, когда их видит драйвер:

 ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); ResultSetMetaData rsmd = rs.getMetaData(); String firstColumnName = rsmd.getColumnName(1); // etc.. 

Это точно скажет вам.