【发布时间】:2012-11-30 23:43:28
【问题描述】:
我必须使用 sqlite 制作项目,我宁愿使用简单的 plist、xml 甚至核心数据,因为我没有任何使用 sql 的经验。但是它必须能够从 sqlite 数据库中读取。我下载了 FMDB 包装器并快速设置它,但是当我尝试从我的数据库中读取它时,它没有显示在 tableview 中,这是我的代码:
TermsArray = [[NSMutableArray alloc] init];
NSString *path = [[NSBundle mainBundle] pathForResource:@"Database" ofType:@"sql"];
FMDatabase *db = [[FMDatabase alloc] initWithPath:path];
[db open];
FMResultSet *fResult= [db executeQuery:@"SELECT * FROM country WHERE id=1"];
while([fResult next])
{
CountryString = [fResult stringForColumn:@"name"];
[CountryArray addObject:CountryString];
NSLog(@"The data is %@=",CountryString);
}
[db close];
}
我使用这个在我的表格视图中显示它:
NSString *Text = [CountryArray objectAtIndex:indexPath.row];
cell.textLabel.text = Text;
现在我没有收到任何错误,但数组始终为空,在控制台中我也没有收到任何警告等,但我注意到 NSLOG 从未出现,所以我不认为那部分是在职的。 这是我在文本编辑器中的 sql 文件:
CREATE TABLE country ( id INTEGER PRIMARY KEY, name VARCHAR(250),location TEXT,number INTERGER);
INSERT INTO country (name,location,number) VALUES('UK','country location here',1);
另外,sqlite 文件应该是什么样的?我使用 sqlite 编辑器创建了一个,它生成了一个 sql 文件,当我在文本编辑器中打开它时,我只看到 sql 语句?
如果有人能帮我解决这个问题,那就太好了,
谢谢!
【问题讨论】:
-
文件扩展名是否正确?大多数时候,SQLite DB 的文件扩展名是
.sqlite,而不是.sql。 -
@DarkDust SQLite 数据库文件的扩展名无关紧要。
-
嘿,谢谢,但我都试过了,他们没有改变。
-
@WTP:
pathForResource:ofType:必须与他在包中的文件名匹配。如果文件不存在并且 SQLite 没有明确地 被告知以只读方式打开文件,则 SQLite 只需创建一个空数据库即可完全解释问题。 -
谢谢,但它绝对是正确的文件名。