应该是权限的问题,看看你登录用的用户名在SQL2000中的权限。

解决方案 »

  1.   

    可是我用查询分析器使用这个账户登陆,就能执行UPDATE。getUpdateCount()为什么还有值呢
      

  2.   

    问题是没有错误提示。我现在就想知道错误在哪里。
    dataSource的设置
    - <data-sources>
    - <data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
      <set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" /> 
      <set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=CarsManager" /> 
      <set-property property="username" value="sa" /> 
      <set-property property="password" value="" /> 
      <set-property property="maxActive" value="0" /> 
      <set-property property="maxWait" value="5000" /> 
      <set-property property="defaultAutoCommit" value="false" /> 
      <set-property property="defaultReadOnly" value="false" /> 
      <set-property property="validationQuery" value="SELECT COUNT(*) FROM car" /> 
      </data-source>
      </data-sources>
    下面是测试代码
    Statement testPst3=con.createStatement();
    System.out.println(testPst3.execute("update car set price=6100 where carID=0"));
    System.out.println(testPst3.getUpdateCount());
    testPst3.close();
    代码执行后没有起作用。
      

  3.   

    找到原因了。<set-property property="defaultAutoCommit" value="false" /> 改为<set-property property="defaultAutoCommit" value="true" /> 就好了。谢谢各位
      

  4.   

    自动提交居然能忘记。这个错误犯的有些太低级了吧。为了稳妥一般我都是通过conn.commit()来提交的。因为经常使用批处理所以养成了手动提交的习惯。