我用以下代码想实现插入数据。
import java.sql.*;
public class bbs {
public static void main(String[] args){
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://192.168.10.74:1433; DatabaseName=bbs1";
String userName = "sa";
String userPwd = "123";
Connection dbConn;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
Statement pStmt=dbConn.createStatement();
String sql = "insert into tabb (a,b) values ('aaa','bbb')"; 
pStmt.executeUpdate(sql);
}
catch (Exception e) {
e.printStackTrace();
}

最后结果如下:
Connection Successful!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对
象名 'tabb' 无效。
        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 Sour
ce)
        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.executeUpdateInternal(Unknown S
ource)
        at com.microsoft.jdbc.base.BaseStatement.executeUpdate(Unknown Source)
        at bbs.main(bbs.java:28)能输出Connection Successful!说明数据库连接正确,数据库中确实有tabb表,insert into tabb (a,b) values ('aaa','bbb')能在查询分析器正确执行,曾试过把192.168.10.74换成127.0.0.1,换成localhost.结果都一样。谁有解决方案,多谢了,请指教!!!!

解决方案 »

  1.   

    String sql = "insert into tabb(a,b) values ('aaa','bbb')";
      

  2.   


    连接到SQLServer服务器,必须指定机器名和SQLServer实例名,格式为
    机器名(或IP)\实例名。
    例如:
    127.0.0.1\hy 
    localhost\hy
    192.1.1.181\hy如果该实例为SQLServer默认实例,则没有必要指定实例名,仅需指定机器名。
      

  3.   

    这是以前在delphi得到的结论,试试斜杠的方向和个数
      

  4.   

    1.(java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对
    象名 'tabb' 无效。)说明表名tabb有问题.你去看看databasename是bbs1吗?还有tabb表在bbs1中吗?
    如果还不行的话,你改用jdbc:odbc连接看看.
    2.还有"pStmt.executeUpdate(sql);"这句话好象是有返回的吧.如果解决了,请说一声.
      

  5.   

    你没有对dbConn进行判断,并不能说明数据库已联接
    if(dbConn!=null){
    ...
    }
      

  6.   

    像  wilowind(杂而不精) 说的我把sa的默认实例改为bbs1,就可以了,
    但是我试了
    127.0.0.1\hy 
    localhost\hy
    192.1.1.181\hy
    斜杠的方向和个数试了 很多,但是没有结果
      

  7.   

    实在不行就试试在sql查询语句中的表名tabb前面加上数据库名字,比如“select haha from testDB.tabb”
      

  8.   

    请确认你的数据库版本是否正确,WINXP下必须安装SP3补丁.
    如果已经装了,再看下一条.
    Statement pStmt=dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    请注意"createstatement"后面括号里的语句.
    因为牵扯到更改数据表的问题,所以必须加上括号里的语句.
      

  9.   

    请确认:
    tabb是bbs1库的表
    sa是tabb的所有者
    sa默认的数据库是bbs1
      

  10.   

    是不是端口不对啊,localhost:1433改默认端口了
      

  11.   

    重装了系统(现在是xp+sql 2000 sp4)还是那个程序却提示
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
    hing socket.
    天呀,求你救救我吧!!!!!!!