数据库连接成功,但是却找不到数据库中的表,高手指点怎么回事?

SISI1985818 2009-04-07 12:18:34

我用的是SQL2000,在Myeclips中调用数据库成功,但是在执行SQL语句的时候却找不到里面的表
高手请指点
谢谢
...全文
3697 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SISI1985818 2009-04-07
  • 打赏
  • 举报
回复
数据库是对的,我的每个表的数据都读不出来
SISI1985818 2009-04-07
  • 打赏
  • 举报
回复
这个是错误提示。我的表没有设置权限
数据库连接成功
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'T_Chapter' 无效。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at javaBean.DB_Conn.executeQuery(DB_Conn.java:40)
at javaBean.GetChapter.getChapter(GetChapter.java:25)
at javaBean.GetChapter.main(GetChapter.java:50)
0
sdhdy 2009-04-07
  • 打赏
  • 举报
回复 1
数据库对不对?是不是那个表是别的用户名给建的,都有可能。

分别try:
select * from dbname..tb
select * from dbname.别的用户.tb
SISI1985818 2009-04-07
  • 打赏
  • 举报
回复
数据库连接成功了的
  • 打赏
  • 举报
回复
连接的数据库不对?例如:你的表在数据库A中,而连接的是master或者其他的?
SISI1985818 2009-04-07
  • 打赏
  • 举报
回复
我把啥都打开了,在查询分析器里面可以查询到表中的信息,企业管理器也打开了的
就是不知道为什么连接不上表
SISI1985818 2009-04-07
  • 打赏
  • 举报
回复
连接数据库的代码如下:
package javaBean;

import java.sql.*;

/* 在此系统可以选择数据库连接的方式,可以专门的做一个页面 */
/* 此类将作为系统链接数据库的公共类 */
public class DB_Conn {
// 连接方式一:采用jdts连接,默认
// public static String sdbdriver = "net.sourceforge.jtds.jdbc.Driver";
// public static String url = "jdbc:jtds:sqlserver://localhost:1433;DatabaseName=JavaManage";
// 连接方式二:使用JDBC/ODBC桥驱动程序
// public String sdbdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
// public String url =
// "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=JavaManage";
// 连接方式三:使用JDBC直连,需要SQL2000需要打SP3补丁
public static String sdbdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
public static String url = "jdbc:odbc:JavaManage";


public Connection conn = null; // 数据库连接对象
public Statement sm = null; // 数据库语句对象

/**
* 建立数据库连接
*/
public void ConnectDB() throws Exception {
Class.forName(sdbdriver).newInstance();
conn = DriverManager.getConnection(url, "sa", "");
sm = conn.createStatement();
System.out.println("数据库连接成功");
}

/**
* 数据库查询,返回记录集对象
*/
public ResultSet executeQuery(String sql) throws Exception {
ResultSet rs = null;
sm = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = sm.executeQuery(sql);
return rs;
}

/**
* 数据库更新,返回一个boolean类型
*/
public boolean execute(String sql) throws Exception {
boolean bool = false;
sm = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
if (sm.executeUpdate(sql) == 0)
bool = false;
else
bool = true;
return bool;
}

/**
* 关闭数据库
*/
public void CloseDB() {
try {
if (sm != null) {
sm.close();
// System.out.println("数据库链接测试!关闭");
}
conn.close();
} catch (SQLException SqlE) {
SqlE.printStackTrace();
System.out.print("数据库关闭失败!");
}
}

/**
* ?????
*/
public void getStmt() throws Exception {
sm = conn.createStatement();

}

/**
* 修改数据库的连接方式
*/
public void modifyConnect(String DB_Driver, String DB_url) {
sdbdriver = DB_Driver;
url = DB_url;
}

/**
* 获得章节
*/
public int getChapter() {
int number = 0;
DB_Conn con = new DB_Conn();
try {
con.ConnectDB();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "select TC_number from T_Chapter";
try {
ResultSet rs = con.executeQuery(sql);
rs.next();
number = rs.getInt("TC_number");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return number;
}

/**
* 数据库测试方法
*/
public static void main(String args[]) {
DB_Conn con = new DB_Conn();
try {
con.ConnectDB();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


SQL数据库调用代码如下:
package javaBean;
import java.sql.ResultSet;

/**
* 获取章节数
* */
public class GetChapter {

private int number=0; //该课程的章节数
public GetChapter(){

}


public int getChapter(){
DB_Conn con = new DB_Conn();
try {
con.ConnectDB();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "select TC_number from T_Chapter";
try {
ResultSet rs =con.executeQuery(sql);
rs.next();
number = rs.getInt("TC_number");
System.out.print("success");
} catch (Exception e) {
// TODO Auto-generated catch block
con.CloseDB();
e.printStackTrace();
}
con.CloseDB();
return number;


}

public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}

public static void main(String args[])
{
GetChapter chapter=new GetChapter();
chapter.getChapter();
System.out.println(chapter.getNumber());
}


}
就是这样的



csdyyr 2009-04-07
  • 打赏
  • 举报
回复
打开企业管理器看看有没有
sdhdy 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 SISI1985818 的帖子:]

我用的是SQL2000,在Myeclips中调用数据库成功,但是在执行SQL语句的时候却找不到里面的表
高手请指点
谢谢
[/Quote]

贴出代码、错误提示看看,有对表SELECT 权限吗?
Teng_s2000 2009-04-07
  • 打赏
  • 举报
回复
UP
SISI1985818 2009-04-07
  • 打赏
  • 举报
回复
谢谢sdhdy,问题已经解决
把所有的查询语句都改成select * from dbname..tb
然后就没错了
谢谢你!
huyul 2021-06-14
  • 举报
回复
@SISI1985818 就是这样!很有用!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧