那当然啦,你看你的连接是jdbc:microsoft:sqlserver://lyh:1433;DatabaseName=aaa;User=sa;Password=""
都没有连到具体的数据库呢,你就select count(*) as numIsUser from operator 当然会有错误了
但是如果select count(*) as numIsUser from aaa.dbo.operator就有了具体的数据库和表,当然没有问题啦===================================
我的一分耕耘,你能给一分收获

解决方案 »

  1.   

    1. try Connection.setCatalog(String db_name);//you use "aaa" here2. don't know
      

  2.   

    你在这个jdbc:microsoft:sqlserver://lyh:1433;DatabaseName=aaa;User=sa;Password=""中指定具体的数据库不可以吗???===================================
    我的一分耕耘,你能给一分收获
      

  3.   

    to  回复人: beming(Aming) ( ) 信誉:110  
    请你看清楚我的连接串,里面有数据库项aaa,我连接部分是成功没有问题。
    select count(*) as numIsUser from aaa.dbo.operator没问题我也知道,我是想知道如何不用成员名限定也能访问。不至于以后没写句SQL都带一串这个吧?
      

  4.   

    非常感谢 masterz(MS MVP) 大侠!一针见血,你的方法好使,问题是我不懂那个函数是干啥的,能说说么,谢谢了,问题搞明白就结帖子。
      

  5.   

    我查了书关于setCatalog,书里这样写:"此方法通过设定目录名在当前的连接的子空间中进行选择,如果驱动程序不支持目录,则不会响应此请求."
    可是还是不明白目录是什么?和数据库什么关系?
      

  6.   

    Operator是SQLServer2000中的对象关键字,当然不能直接作为表名查询啦!你把Operator改名为Operator1试试。
      

  7.   

    to 楼上:你说的不对,Operator不是关键字,别的表名也不行的.我总结一下然后结帖吧.用JDBC连接SQLSERVER,虽然在连接串里指定了数据库,但是SQLSERVER还是容易变到其他的库,正如 masterz(MS MVP) 说的那样,可以通过Connection.setCatalog(String db_name)使访问限定在数据库DE_NAME里不至于乱串.
    至于关键字也是要注意的,比如USER就是SQLSERVER的关键字,表名不要用它.