Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据库程序输出不正确_Java - Fatal编程技术网

Java 数据库程序输出不正确

Java 数据库程序输出不正确,java,Java,我正在练习JDBC和使用NetBeans 8.1。我在MS Access中创建了一个表并编写了一个程序。但问题是,当我通过列索引时,我的程序就会成功运行。但我在MS Access中传递了表中的列名,然后出现了一个错误 找不到列 我正在粘贴我的程序代码,并试图进一步解释我的问题 package database; import java.sql.*; public class Database { public static void main(String[] args) { tr

我正在练习JDBC和使用NetBeans 8.1。我在MS Access中创建了一个表并编写了一个程序。但问题是,当我通过列索引时,我的程序就会成功运行。但我在MS Access中传递了表中的列名,然后出现了一个错误

找不到列

我正在粘贴我的程序代码,并试图进一步解释我的问题

package database;
import java.sql.*;

public class Database {
  public static void main(String[] args) {
    try
    {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       String url = "jdbc:odbc:personDSN";    
       Connection con = DriverManager.getConnection(url);
       Statement st = con.createStatement();
       String sql = "SELECT *FROM students";
       ResultSet rs = st.executeQuery(sql);

       while(rs.next())
       {
         String Name = rs.getString(2);
         String add = rs.getString(3);
         String pNum = rs.getString(4);
         System.out.println(Name + " "  + add + " "  + pNum);
       }
       con.close();
     } 
     catch(ClassNotFoundException | SQLException sqlEx)
     {
        System.out.println(sqlEx);
     }
  }
}
正如您在while循环中看到的,我已经在getString()函数中传递了列索引。在这种情况下,我的程序运行成功。但当我传递数据库表中字段/属性的名称时,它会给我一个错误,即“找不到列”。例如,如果我传递getString(“name”),那么它会给出上述错误

请帮我解决我的问题


注意:我已反复检查,我的参数与ms access中的实际表相对,没有拼写错误。

您能显示您的数据库吗?请记住,在MS Access中,您只能在设计模式下看到列名-显示名称可能不同。也可以使用列名查看代码。附加db内容。并在选择名称、地址等时更改sql查询“SELECT*”。我更改了查询并解决了问题。谢谢kain64b。