2012-01-13 34 views
0

我已經創建從Firefox工具SQlite的經理名稱的DB文件myTestDB爲什麼我不能看我的FMDB SQlite的在IOS

數據庫有一個表名ViewController1和表格內容5列(存在價值都是TEXT)

我想讀取列名的值,所以這裏是我的代碼....

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
NSString *myDbPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myTestDB.sqlite"]; 
FMDatabase *myDB = [FMDatabase databaseWithPath:myDbPath]; 
if (![myDB open]) {  
    NSLog(@"Could not open db.");  
    return ; 
} 
else 
{ 
    NSLog(@"DB open!"); 
} 
FMResultSet *rs = [myDB executeQuery:@"SELECT * FROM ViewController1"]; 
for (int i =0; i<[rs columnCount]; i++) { 
    NSLog(@"%@",[rs stringForColumnIndex:i]); 
} 
} 

有許多示例代碼使用方法

while([rs next]) 
{ 
//Loading somethin... 
} 

但如果我使用它,代碼將不會進入while循環,甚至一度

和我的代碼只需登錄5(空)我....

這是爲什麼? ?

感謝您的幫助!

您也可以用中文回答我,謝謝您!

回答

0

嘗試在模擬器退出的完整路徑,然後去這條道路在終端和使用sqlite3的CMDLINE工具: - 驗證數據庫是存在的, - 你可以執行查詢。

http://zetcode.com/databases/sqlitetutorial/tool/

記住,SQLite是懶惰 - 它會按需創建DB(在第一次寫入),所以你可以按需創建一個空的數據庫,而不是打開你認爲你打開數據庫。

如果您想寫入數據庫,您還需要將數據庫從資源複製到庫或文檔。您的資源中的數據庫應該是一個起始模板。

編輯:

以上建議不是原因。我會留下答案,而不是刪除,以幫助他人知道什麼是不是問題。

+0

但如果數據庫是空的... 爲什麼 '[RS信息columnCount]' 回報5(我的專欄的總人數) – bbbbbird1 2012-01-13 03:31:13

+0

好點? - 當你與工具創建的數據庫,做你只是創建模式(表)還是你也插入數據(行)?如果是這樣,有多少行?順便說一句,你仍然需要複製寫... – bryanmac 2012-01-13 03:37:38

+0

...當你從cmdline運行select語句時,輸出是什麼? – bryanmac 2012-01-13 03:38:49

相關問題