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



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

11 个解决方案

#1


引用楼主 SISI1985818 的帖子:
    我用的是SQL2000,在Myeclips中调用数据库成功,但是在执行SQL语句的时候却找不到里面的表 
    高手请指点 
    谢谢


贴出代码、错误提示看看,有对表SELECT 权限吗?

#2


打开企业管理器看看有没有

#3


连接数据库的代码如下:
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());
}


}
就是这样的 



#4


我把啥都打开了,在查询分析器里面可以查询到表中的信息,企业管理器也打开了的
就是不知道为什么连接不上表

#5


连接的数据库不对?例如:你的表在数据库A中,而连接的是master或者其他的?

#6


数据库连接成功了的

#7


数据库对不对?是不是那个表是别的用户名给建的,都有可能。

分别try:
select * from dbname..tb
select * from dbname.别的用户.tb

#8


这个是错误提示。我的表没有设置权限
数据库连接成功
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

#9


数据库是对的,我的每个表的数据都读不出来

#10


谢谢sdhdy,问题已经解决
 把所有的查询语句都改成select * from dbname..tb
然后就没错了
  谢谢你!

#11


UP
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告