String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'"; 可以换成 String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='"+dl+"'";然后你用System.out.println(src)把它打印出来,再把它Copy到sql plus中去执行,看看有没有错误
各位大侠,我按照你们的说法改了,还是报错: 用out.print在后台输出这条sql: Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='ss' java.sql.SQLException: 无效的列名但是把这条sql拷到sql plus执行就能得到结果: SQL> Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='s s'; ID ---------- CLASSNAME -------------------------------------------------------------------------------- 4 ss1 5 ss2
我也碰见过这种问题,我用的是oracle。String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";SQL Plus执行这条语句没有问题。后来我去掉那后面的分号";",执行成功了,,楼主不妨试试
Have a try! Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b2.id = b1.bid and b2.bclassname='ss';
在页面上调用时后台总报错: java.sql.SQLException :无效的列名 --------------------------------------------------- 这个错误显示已经连接成功我估计是这两句语句在执行时有问题; String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'"; ResultSet rs = stmt.executeQuery(src);你试这条语句肯定没错。 ResultSet rs = stmt.executeQuery("select id from tblclass");String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'"; 这个好象有错;应该这样写把 。String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='"+dl+"'";去掉末尾最左边的"+"。。不妨试试
ResultSet rs = stmt.executeQuery("select id from tblclass"); 执行这句也是一样。看来不是写法的问题。真是奇怪了
我看你的开发工具和我的差不多。 你先按这顺序写试试:(因为我的运行没问题)Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@主机名:1521:服务名","用户名","密码");Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select id from tblclass"); ..... 如果这样不行。那就真的不幸了。
to ufotree(清凉薄荷)String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where " +"b1.bid=b2.id and b2.bclassname="+"\'"+dl+"\'";既然报错信息是 列找不到 感觉应该是 列名没写对 不过你既然已经检查了,那就试试这个吧~
String src = "Select b1.id,b1.classname from tblclass b1 left outer join tblbclass b2 on where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";其实我是很菜的,不过还是发表一下吧,希望有用
String src = "Select b1.id,b1.classname from tblclass b1 left outer join tblbclass b2 on b1.bid=b2.id where b2.bclassname="+"'"+dl+"'";
可以换成
String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='"+dl+"'";然后你用System.out.println(src)把它打印出来,再把它Copy到sql plus中去执行,看看有没有错误
如:PL/SQL Developer 、SQLServer的控制台。
不好意思,话虽激烈。但你要反省!
good luck!
用out.print在后台输出这条sql:
Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='ss'
java.sql.SQLException: 无效的列名但是把这条sql拷到sql plus执行就能得到结果:
SQL> Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='s
s'; ID
----------
CLASSNAME
--------------------------------------------------------------------------------
4
ss1 5
ss2
Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b2.id = b1.bid and b2.bclassname='ss';
谢谢你的教诲。
也许你很聪明,看不起这些问题。
象我这样的刚入行的程序员有很多,在某些问题上会走弯路,找不到办法,因为没有什么经验,所以才会问如此可笑的问题。
这个问题我问了几个搞过几年java的程序员和一个oracle牛人,还是没有解决,如果你知道是怎么回事的话请你告诉我,如果不知道也不要看不起人。
再仔细看看,还是觉得CoolAbu(阿卜-Never Stop(★★★★))的方法应该万无一失了
不是jdbc不对吧!
你说的去掉哪个分号?
这句结尾的分号去掉,在jb里会报错的
一部分代码。。已成功实现。
//////////装载驱动程序///////
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //////创建连接////////
Connection con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@hjdb:1521:dims","dimsdba","610");
Statement stmt = con.createStatement();
ResultSet rmtrlid = stmt.executeQuery("select mtrlid from dimsdba.mtrlbasicinfo"); while(rmtrlid.next()){
if(!(mtrlid.equals(rmtrlid.getString("mtrlid"))))
mflag=false;
else{
mflag=true;break;
}
}if(!mflag){
session.setAttribute("rmtrlid","你输入的物料编码号"+mtrlid+"在数据库的物料基本信息表中不存在!");
String url = "/crksq/error.jsp";
url = response.encodeURL(url);
RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);
} else{
//////调用插入函数/////////
Enterprise1 newsession =ehome.create();
newsession.insertotherappout(appoutid, deptid, appdate, plannerid, usechief, fetcher, tabmaker, mtrlid, unit, reqamt, pprice, psum, proj, prodname, re);
你看看把。。
刚才看了一下你的sql语句,发现你是对一个表格的连接查询,想想你的实际情况,然后换一种思路试一下。不用影响项目的进度!
java.sql.SQLException :无效的列名
---------------------------------------------------
这个错误显示已经连接成功我估计是这两句语句在执行时有问题;
String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'";
ResultSet rs = stmt.executeQuery(src);你试这条语句肯定没错。
ResultSet rs = stmt.executeQuery("select id from tblclass");String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname="+"'"+dl+"'"; 这个好象有错;应该这样写把 。String src = "Select b1.id,b1.classname from tblclass b1,tblbclass b2 where b1.bid=b2.id and b2.bclassname='"+dl+"'";去掉末尾最左边的"+"。。不妨试试
执行这句也是一样。看来不是写法的问题。真是奇怪了
你先按这顺序写试试:(因为我的运行没问题)Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@主机名:1521:服务名","用户名","密码");Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select id from tblclass");
.....
如果这样不行。那就真的不幸了。
import java.sql.*;public class connect_orc
{
private Connection connect_oracle()
{
Connection conn=null;
try
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ziliaoku","system","manager");
}
catch(Exception e)
{
System.out.println(e.toString());
}
return(conn);
} public Connection getconnect()
{
return(this.connect_oracle());
}
}这是我连接数据库的bean,我在别的页面上也写过类似的处理都没问题的
是不是jsp不支持这样的多表间查询呢
1.sql 問題
2.rs.getString("問題") 最好全大寫
mm 的問題這麼多人回答阿!呵呵
String src = "Select b1.id,b1.classname from tblclass b1 left outer join tblbclass b2 on b1.bid=b2.id where b2.bclassname=\'"+dl+"\'";
b1是不是有bid这个字段?
我给你解决
MSN:[email protected]
希望探讨!