用statement查询数据库中的表,怎么老是说对象名无效呢??
import java.sql.*;
public class jdbc {
static
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(
ClassNotFoundException e)
{
System.out.println(e.getMessage());
}
}
public static void main(String[]args)
{
try
{
Connection conn = DriverManager.getConnection("jdbc:odbc:student","sa","");
Statement st = conn.createStatement();
ResultSet sr = st.executeQuery("select * from c");
while(sr.next())
{
String cno = sr.getString(1);
String cname = sr.getString(2);
System.out.println("cnumber:"+cno+";name:"+cname);
}
st.close();
conn.close();
}catch(
SQLException e)
{
System.out.println(e.getMessage());
}
}
}
这是关于sqlserver 2000和java连接的一段代码,数据库名称叫做student,为什么查询其中的表的时候总是说对象名c无效呢?其中c是数据库中的一个表。各位大侠帮帮忙!!小弟谢了!!
------最佳解决方案--------------------估计 ODBC 配置得有问题。
另外,不要使用 JDBC/ODBC 驱动,现实中没人会去用这个的。
建议你去下载 SQL Server 2000 的 JDBC 驱动程序,使用 JDBC 来做。
------其他解决方案--------------------
我顶这个,怎么还用JDBC:ODBC驱动啊,这个方式只是理论上用,现实一般不用。
------其他解决方案--------------------权限问题
你连接数据库的用户没权限查这张表
------其他解决方案--------------------除1楼所说的可能外,还有一种可能:
你的C这张表是不是属于sa的?
因为你是用sa登录的,如果你的c这张表不是sa的,而是其它用户(如:user)的,那么,查询语句应该这么写:
select * from user.c
------其他解决方案--------------------可是我的sa是用权限的呀,它是超级用于,是dbo啊,怎么会没有权限呢?我试了好几台电脑还是不起作用呢?
------其他解决方案--------------------SQL server安装好后,需要一系列配置才能用,好像要启动XX服务,因为XX服务默认是停止的,记不清了,百度上肯定有
------其他解决方案--------------------都没抓住问题的本源吧
昨天的问题还在这里。。。
很显然 只能是权限问题
如果服务没起,你是连不上数据库的
现在你是连上了,但是没有找到对象,说明你没权限或者确实没这个对象
------其他解决方案--------------------谢谢各位了!真的是受益匪浅啊!我也知道odbc比较麻烦,可是因为不太清楚这个sql server 2000 的jdbc驱动程序怎么用,所以就想用jdbc-odbc来实现,野草这位仁兄真是一语惊醒梦中人啊!!我试试!有问题我再继续提问!!
------其他解决方案--------------------拜托谁能指点一下,关于sql server 2000 的jdbc驱动程序该怎样才能让eclipse识别呢?
------其他解决方案--------------------你怎么不用MySql呢