SQL Server:ODBC 对象名“***”无效的问题 & 找不到数据库问题
该问题的特征、原因与解决1、问题特征
①找不到指定表,即出现类似于”对象名 'goods' 无效”。
②在配置ODBC时,到”选择默认数据库“时,找不到用户自己建的数据库。(如图1)
2、原因
首先,先保证你的SQL语句没有出错。(你可以放到SQL Server去判断)
出现该问题的原因是:在配置ODBC时,在选择服务器时,输入框输入"."。(如图2)
图1 服务器选择"."时,数据库不能正常配置
图2
3、解决
那么,服务器应该怎么填写才是正确的呢?(图3,是正确配置服务器后,显示的数据库列表)
图3 正确配置服务器后,可选的数据库列表
图3中,LiangshanHeros这个数据库,是我自己建的。这说明,服务器正确配置了。
其实,服务器名要配置成你现在要访问的服务器。以SQL Server 2005为例,如图4所示,我的服务器名是:www-4677ba992fd\sqlexpress
图4 正确的服务器名
附:使用jdbc-odbc方式,往指定的表中添加一条数据,并检查是否成功插入。
/** * @Title: test.java* @Package * @Description: jdbc-objc入门程序:实现对指定的表中插入一条数据,并加测是否插入成功。* @author 慢跑学Android* @date 2012-1-19 下午03:30:48* @version V1.0 */import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class test {public static void main(String[] args) {Connection ct = null;Statement sm = null;try {// 1.加载驱动Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// 2.取得连接【指定连接到哪个数据源】// window认证下只需:ct = DriverManager.getConnection("jdbc:odbc:mytest");ct = DriverManager.getConnection("jdbc:odbc:mytest", "sa", "sapass");System.out.println("数据库连接成功");// 3.创建Statement或者PreparedStatement【区别】// statement用处是:主要用于发送SQL语句到数据库sm = ct.createStatement();// 4.执行(可以执行任何对数据库的操作)// ①选择要操作的数据库sm.execute("use master");// ②对该数据库进行操作int i = sm.executeUpdate("insert into goods values ('10001','西红柿','2.0','水果','')");if (1 == i) {System.out.println("插入成功");} else {System.out.println("插入失败");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {// 释放资源try {if (null != sm) {sm.close();}if (null != ct) {ct.close();}} catch (Exception e) {e.printStackTrace();}}}}
页:
[1]