你的name字段是为字符型吧,querystr里有没有引号:试试看下边的:
ResultSet rstmp=sttmp.executeQuery("select * from Tabelname where rtrim(name)='"+querystr+"'");
ResultSet rstmp=sttmp.executeQuery("select * from Tabelname where rtrim(name)='"+querystr+"'");
ResultSet rstmp=sttmp.executeQuery("select * from Tabelname where rtrim(name) = \'" + querystr + "\'");
:)
还是不行.
"cannot return a value from method whose result type is void "
为什么会抱这种错呢?
Connection conquery=DriverManager.getConnection("jdbc:odbc:sql");
Statement sttmp=conquery.createStatement();
ResultSet rstmp=sttmp.executeQuery("select * from Tablename where rtrim(code)="+"\'"+querystr+"\'");
if(!rstmp.next()) return
valcode.setText(rstmp.getString(1));
valname.setText(rstmp.getString(2));
valzsp.setText(String.valueOf(rstmp.getFloat(3)));
valjkp.setText(String.valueOf(rstmp.getFloat(4)));
valzgj.setText(String.valueOf(rstmp.getFloat(5)));
valzdj.setText(String.valueOf(rstmp.getFloat(6)));
valzxj.setText(String.valueOf(rstmp.getFloat(7)));
valcjss.setText(String.valueOf(rstmp.getFloat(8)));
valcjje.setText(String.valueOf(rstmp.getFloat(9)));
valzd1.setText(String.valueOf(rstmp.getFloat(10)));
valzd2.setText(String.valueOf(rstmp.getFloat(11)));
}
数据库是一个SQL7的表,结构如下:
code char (6)
name char(10)
column3---column11 都是 numeric 类型.
dsn="sql"已经在ODBC中连接到这个表的数据库了
code=rs.getString(1);
name=rs.getString(2);
zsp=rs.getFloat(3);
jkp=rs.getFloat(4);
zgj=rs.getFloat(5);
zdj=rs.getFloat(6);
zxj=rs.getFloat(7);
cjss=rs.getFloat(8);
cjje=rs.getFloat(9);
惟独上面那段代码通不过,而且SQL语句都是一样的.
我用的JDK1.4.0,WINDOWS XP,我的ODBC测试也是通的啊,
建议你调试一下你的代码,加上System.out.println("a");就可以,看看执行到哪一行时问题
public void dispdata() throws SQLException {
Connection conquery=DriverManager.getConnection("jdbc:odbc:sql");
Statement sttmp=conquery.createStatement();
ResultSet rstmp=sttmp.executeQuery("select * from Tablename where rtrim(code)="+"\'"+querystr+"\'");
System.out.println("a1");
if(!rstmp.next()) return
System.out.println("a2");
valcode.setText(rstmp.getString(1));
System.out.println("a3");
valname.setText(rstmp.getString(2));
System.out.println("a4");
valzsp.setText(String.valueOf(rstmp.getFloat(3)));
System.out.println("a5");
valjkp.setText(String.valueOf(rstmp.getFloat(4)));
valzgj.setText(String.valueOf(rstmp.getFloat(5)));
valzdj.setText(String.valueOf(rstmp.getFloat(6)));
valzxj.setText(String.valueOf(rstmp.getFloat(7)));
valcjss.setText(String.valueOf(rstmp.getFloat(8)));
valcjje.setText(String.valueOf(rstmp.getFloat(9)));
valzd1.setText(String.valueOf(rstmp.getFloat(10)));
valzd2.setText(String.valueOf(rstmp.getFloat(11)));
JDBC Driver Source Code:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(URL,"sa","passworld");
URL 格式为:
"jdbc:microsoft:sqlserver://"+HostName+":"+Port(Default value 1433)+";databasename=" + databaseName;
在classpath中加入刚才的三个jar文件,上面的代码要你要修改一下加上相应的东西,