2013-04-22 64 views
0

我想用Android連接到SQL Server。NullPointerException取決於createStatement設備

這是我的代碼:

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); 

try{ 
Statement ps = conn.createStatement(); 
ResultSet rs = ps.executeQuery ("select * from cliente"); 
..... 
} 
catch (SQLException e) { 
e.printStackTrace(); 
} 

一切都OK了,如果我跑在三星Galaxy王牌的應用程序,但如果我想在其他設備中運行,這是錯誤:

java.lang.NullPointerException 

,但此錯誤是路線:

Statement ps = conn.createStatement(); 

我不知道爲什麼,根據設備運行這個或N OT。

回答

0
Statement ps = db.conn.createStatement(); 

這應該是

Statement ps = conn.createStatement(); 

這裏分貝值null我GUSS,所以你從下面這行代碼得到NullPointerException
如有任何問題,請讓我知道。

編輯:

如果數據庫中不存在你的代碼,然後把系統輸出,如:

conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); 
Sysout.out.Println("value of conn is "+conn); 

並檢查康恩的價值。根據我的理解,這是空的。

FYI:

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); 

這些拖行必有我一個try/catch塊。

+0

對不起,「db。」不在代碼中,我不知道爲什麼在這裏。問題是爲什麼在某些設備上它工作而在另一個設備上不工作 – mglprz87 2013-04-22 12:21:38

+0

如果db不在你的代碼中並且變量conn不存在於db對象中,那麼你將在運行時得到編譯時問題而不是NullPointerexception。 – 2013-04-22 12:23:01

+0

我已經改變了答案,db。不應該在這裏,一切都在同一個班,就像現在的代碼一樣。對不起 – mglprz87 2013-04-22 12:25:30