1

SQL でデータベースにデータを挿入しようとしていますが、プログラムを実行した後にエラーが発生し、次のように表示されます。

[Microsoft][ODBC SQL Server Driver][SQL Server]Insert Error: Column name or number of supplied values does not match table definition.

どうすれば修正できますか?誰かが私のコードの何が問題なのか教えてもらえますか?

コードは次のとおりです。

private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) {
        try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        String url = "jdbc:odbc:****";
        String user = "****";
        String pass = "****";
        Connection connection = DriverManager.getConnection(url, user, pass);
        Statement statement = connection.createStatement();
        String pIDNo = txtPatientID.getText();
        String pFName = txtpFName.getText();
        String pLName = txtpLName.getText();
        String pMI = txtpMI.getText();

        String sql = "INSERT INTO dbo.Patients VALUES (" + 
                (pIDNo)+",'"+(pFName)+"','"+(pLName)+"','"+(pMI)+"')";
        statement.executeUpdate(sql);
        JOptionPane.showMessageDialog(rootPane, "Patient Added!");
        }catch (Exception ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage());
            System.exit(1);
        }
    }

テーブル情報は次のとおりです。

患者テーブル

4

3 に答える 3