該問題的特徵、原因與解決
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();}}}}