import java.sql.*;  
public class TestDB { public static void main(String[] args) { 
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";  
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=DB1"; 
String userName = "sa"; 
String userPwd = "";
String sql="Select * from table1";
Connection conn;  
try { 
Class.forName(driverName);  
conn = DriverManager.getConnection(dbURL, userName, userPwd); 
if(!conn.isClosed()){
System.out.println("Connection Successful!");
Statement smt=conn.createStatement();
ResultSet rs=smt.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getString("id")+" "+rs.getString("name"));
}
smt.close();
conn.close();
}
}catch (Exception e) {  
e.printStackTrace(); 
} } 
} 我在测试如何访问表,
我想访问表:table1,并显示出表里面的记录
(表table有id,name两个字段)
可是我运行代码时,会出现错误
Connection Successful!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'table1' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at TestDB.main(TestDB.java:17)

请大家帮我看看,我这是哪里错误。

解决方案 »

  1.   

     ResultSet rs=smt.executeQuery("select * from table1");
      

  2.   

    看错了,原来LZ定义了sql了,不好意思
      

  3.   

    String sql="Select * from table1";这里S是大写吗??我的都是小写,不知道大写行不行。希望对你有点帮助,现在电脑上没JDK不能帮你试一下。
      

  4.   

    后来找到了解决的方法了
    访问数据库的用户有登录权限,但无操作表的权限
    解决办法:
    1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。
    2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。
      

  5.   

    这个语句错误!************rs.getString("id")+" "+rs.getString("name"));
      

  6.   

    rs.getString("id")+" "+rs.getString("name")); 这里错误!!!!!!!!!!
      

  7.   

    你的Select 的s不用大写 大写好像不行
      

  8.   

    rs.getString("id")+" "+rs.getString("name")); 这里错误!!!!!!!!!!
      

  9.   

    DatabaseName=DB1 ->改写成这样行不:databasename=DB1
    我平常的databasename都是小写的!!