import java.sql.*;
import java.awt.*;
class Jdbcesp{
public static void main(String[] args){
String divername="sun.jdbc.odbc.JdbcOdbcDriver";
String database="jdbc:odbc:www";
String user=null;
String password=null;
String sqlstr="select * from cheng where Number_id=200166004";
//连接ODBC
try{
Class.forName(divername);
System.out.println("成功加载JDBC-ODBC驱动程序");
}catch(ClassNotFoundException e){
System.out.println("加载JDBC-ODBC驱动程序失败");
System.out.println(e.getMessage());
return;
}
//连接数据库
try{
Connection con=DriverManager.getConnection(database);
System.out.println("连接db_suit数据库成功");
Statement stmt=con.createStatement();
try{
ResultSet result =stmt.executeQuery(sqlstr);//查询语句 stmt
System.out.println("成功");
//
try{
while(result.next()){
int Number_id=result.getInt(4);
String telephone=result.getString(30);
String Email_address=result.getString(30);
int student_number=result.getInt(4);
System.out.println("Number_id"+Number_id);
System.out.println("telephone"+telephone);
System.out.println("Email_address"+Email_address);
System.out.println("student_number"+student_number);
}
}catch(SQLException ex1){
System.out.println("失败1");
System.out.println(ex1.getMessage());
}
//。
}catch(SQLException ex){
System.out.println("失败");
System.out.println(ex.getMessage());
}
//关闭创建对象
con.close();
}catch(SQLException e){
System.out.println("连接db_suit数据库失败");
System.out.println(e.getMessage());
return;
}
}
}在两个标记中的代码:如果不要的话就正确并显示成功加载JDBC-ODBC
连接数据库成功
成功而要了中间的代码就不正确并显示成功加载JDBC-ODBC
连接数据库成功
成功
失败1
[Microsoft][odbc sql server driver]无效的描述符索引
import java.awt.*;
class Jdbcesp{
public static void main(String[] args){
String divername="sun.jdbc.odbc.JdbcOdbcDriver";
String database="jdbc:odbc:www";
String user=null;
String password=null;
String sqlstr="select * from cheng where Number_id=200166004";
//连接ODBC
try{
Class.forName(divername);
System.out.println("成功加载JDBC-ODBC驱动程序");
}catch(ClassNotFoundException e){
System.out.println("加载JDBC-ODBC驱动程序失败");
System.out.println(e.getMessage());
return;
}
//连接数据库
try{
Connection con=DriverManager.getConnection(database);
System.out.println("连接db_suit数据库成功");
Statement stmt=con.createStatement();
try{
ResultSet result =stmt.executeQuery(sqlstr);//查询语句 stmt
System.out.println("成功");
//
try{
while(result.next()){
int Number_id=result.getInt(4);
String telephone=result.getString(30);
String Email_address=result.getString(30);
int student_number=result.getInt(4);
System.out.println("Number_id"+Number_id);
System.out.println("telephone"+telephone);
System.out.println("Email_address"+Email_address);
System.out.println("student_number"+student_number);
}
}catch(SQLException ex1){
System.out.println("失败1");
System.out.println(ex1.getMessage());
}
//。
}catch(SQLException ex){
System.out.println("失败");
System.out.println(ex.getMessage());
}
//关闭创建对象
con.close();
}catch(SQLException e){
System.out.println("连接db_suit数据库失败");
System.out.println(e.getMessage());
return;
}
}
}在两个标记中的代码:如果不要的话就正确并显示成功加载JDBC-ODBC
连接数据库成功
成功而要了中间的代码就不正确并显示成功加载JDBC-ODBC
连接数据库成功
成功
失败1
[Microsoft][odbc sql server driver]无效的描述符索引
String telephone=result.getString(30);
String Email_address=result.getString(30);
int student_number=result.getInt(4);result.getInt(4);不能用两次的。
这样:
int intTemp = result.getInt(4);
String strTemp = result.getString(30);int Number_id= intTemp;
String telephone=strTemp ;
String Email_address=strTemp;
int student_number=intTemp ;
String telephone=result.getString(30);
String Email_address=result.getString(30);
int student_number=result.getInt(4);这几个方法中的数字表示数据库表中字段在数据表中的序号,你确认你的数据表有30个字段吗?估计是这里的数字太大了
我建立的表是:
create table cheng
(
Number_id int null,
telephone varchar(20) null,
Email_address varchar(30),
student_number int null,
);
在问一下 int Number_id=result.getInt(4); 的那个4可以不给它初始值不阿??
您说的意思是在getString(30) 中的30是她的第几字段嘛??
通过数据表的属性名来取值,如: result.getString("telephone");等 ------这个我不大明白什么意思啊 ~~
您能在看了我的表和程序 直接帮我改了吧!!
因此你的程序可以作如下修改(只是部分代码):int Number_id=0;
String telephone="";
String Email_address="";
int student_number=0;
while(result.next()){
Number_id=result.getInt(1);
telephone=result.getString(2);
Email_address=result.getString(3);
student_number=result.getInt(4);
System.out.println("Number_id"+Number_id);
System.out.println("telephone"+telephone);
System.out.println("Email_address"+Email_address);
System.out.println("student_number"+student_number);
}