2009-12-24 141 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