2009-12-24 124 views
1

我很喜歡這裏,但是,爲什麼它出現這個錯誤?SQLite'沒有這樣的表'錯誤

我在名爲Team.sqlite的SQLite中有一個名爲Team的表!還有什麼我需要提供?

 
ERROR 
--------------- 
2009-12-23 23:17:05.277 PitScout[6690:207] *** Assertion failure in -[Team addTeam], /Users/******/Desktop/PitScout/Classes/Team.m:90 
2009-12-23 23:17:05.280 PitScout[6690:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error while creating add statement. 'no such table: Team'' 
2009-12-23 23:17:05.280 PitScout[6690:207] Stack: (
    30131291, 
    2502464777, 
    30215227, 
    810772, 
    16329, 
    12146, 
    20588, 
    2753625, 
    4667381, 
    2753625, 
    3160994, 
    3169731, 
    3164943, 
    2858547, 
    2766876, 
    2793653, 
    37420753, 
    29916032, 
    29912136, 
    37414797, 
    37414994, 
    2797571, 
    10780, 
    10634 
) 
+0

要回答這個問題,我們至少需要知道你打開數據庫的方式以及你如何查詢數據庫。你在使用核心數據嗎? – outis 2009-12-24 08:32:57

+2

嘗試打開你的數據庫與一些經理,爲例如SQLite Manger插件Firefox或其他人。在那裏你可以輸入你的查詢。如果你的查詢能在那裏工作,它也可以在你的應用中運行。 – Morion 2009-12-24 10:29:15

回答

3
  1. 使用CoreData。直接使用SQLite比較困難,需要更多的代碼,並且浪費時間,除非您有非常特殊的需求。

  2. 你說:

我有一個名爲團隊表中的 SQLite的叫Team.sqlite!我需要提供什麼其他 ?

這沒有意義。你是說你有一個名爲「Team.sqlite」的數據庫?或者你有一個名爲「Team.sqlite」的表?名爲「Team.sqlite」的表與名爲「Team」的表不同。

如何創建表格?即您正在使用的語句CREATE TABLE是什麼?

+0

那麼我決定Core Data對我來說更加困難,僅僅是一個初學者,我有一個名爲Team.sqlite的FILE和一個名爲Team的表。 ! – 2009-12-25 03:53:27

+1

核心數據的學習曲線可能稍微更陡,但給它一個機會,特別是如果您的項目是爲了學習體驗。一旦你學會了如何使用核心數據,它將使編程更容易。最好學習如何從一開始就以「正確」的方式做到這一點,然後學習一種新的方式,並從舊的方式中忘掉壞習慣。 – outis 2009-12-25 07:17:23

1

注意:我重新啓動了我的項目,現在已經修復。事實證明,這是我的SQL語句的問題。感謝大家!

編輯:修正了對我的SQL語句:我打電話爲確實存在一個表,但是我用:中

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"SQLITE.sqlite"]; 

代替:

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Team.sqlite"]; 

這實際上是由引起我早期版本的應用程序之一。

但是我的Teams.m非常好。這實際上是在我的SQLAppDelegate.m中。

+3

擡頭:SO是問答網站,而不是論壇。你的帖子在這裏稍微回答你的問題。爲了使它成爲一個完整的答案,請編輯這個答案並解釋正確的陳述並編輯你的問題來添加破壞的陳述,以便其他人可以從你的問題中學習。對於未來的問題,請確保你的答案真正回答這個問題。當你得到50分(你總是可以在你自己的問題上發表評論)時,你可以發表更多的一般性陳述(和特定答案的問題)作爲評論。 – outis 2009-12-25 07:21:51