该问题的特征、原因与解决
1、问题特征
①找不到指定表,即出现类似于”[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'goods' 无效”。
②在配置ODBC时,到”选择默认数据库“时,找不到用户自己建的数据库。(如图1)
2、原因
首先,先保证你的SQL语句没有出错。(你可以放到SQL Server去判断)
出现该问题的原因是:在配置ODBC时,在选择服务器时,输入框输入"."。(如图2)
图1 服务器选择"."时,数据库不能正常配置
图2
3、解决
那么,服务器应该怎么填写才是正确的呢?(图3,是正确配置服务器后,显示的数据库列表)
![](http://hi.csdn.net/attachment/201201/19/0_13269647396D76.gif)
图3 正确配置服务器后,可选的数据库列表
图3中,LiangshanHeros这个数据库,是我自己建的。这说明,服务器正确配置了。
其实,服务器名要配置成你现在要访问的服务器。以SQL Server 2005为例,如图4所示,我的服务器名是:www-4677ba992fd\sqlexpress
![](http://hi.csdn.net/attachment/201201/19/0_13269650928k4g.gif)
图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();
}
}
}
}