您的位置:首页 > 数据库

SQL Server:ODBC 对象名“***”无效的问题 & 找不到数据库问题

2012-01-19 17:41 393 查看
该问题的特征、原因与解决

1、问题特征

①找不到指定表,即出现类似于”[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 '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();
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐