我在 Xcode 中遇到了一个问题:我尝试了很多周将数据添加到 sqlite 数据库中,并且我在 Google 上搜索了很多结果,但没有一个可以提供完整而清晰的教程,我怀疑他们中的大多数都使用 .db 但不是 sqlite该sqlite无法插入或更新,只能读取数据,还是有其他方法可以做到这一点?
如果你们有的话,请在答案中附上带有教程的链接。谢谢
我怀疑sqlite无法插入或更新,只能读取数据
当然你可以在 SQLite 中插入数据。这是一个和其他数据库一样的数据库,只是更轻一些,并且嵌入在与您的应用程序相同的进程中,而不是通常情况下的不同进程(这都意味着 SQLite 不能回答多个客户端,并且您除了您的应用程序之外,不必在计算机上安装任何东西)。
这是插入文档:http ://www.sqlite.org/lang_insert.html
这是许多其他教程中的一个:http ://www.techotopia.com/index.php/An_Example_SQLite_based_iPhone_Application
(事实上我只是在谷歌上搜索“sqlite xcode insert”,我以前不知道这个教程)
Sunny 已经两天了,我一直在努力找出如何在 iOS 上将数据插入到 sqlite。您应该做的第一件事是告诉 SQLite 将数据保存在哪里。默认情况下,如果您在手机上运行您的应用程序,它会将 sqlite 文件放在只读根目录中。要解决它,您应该这样做:
-(NSString *)GetDocumentDirectory{
fileMgr = [NSFileManager defaultManager];
homeDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
return homeDir;
}
当你想插入数据时,哪个 fileMgr 是NSFileManager
,接下来是 homeDir NSString
,首先你应该给它你的 SQLite 根,这是第一行,它检查是否sqlite3_open
并且将开始插入你的数据:
-(void)InsertRecords:(NSMutableString *)myData{
NSString *dbPath = [self.GetDocumentDirectory stringByAppendingPathComponent:@"YOUR SQLITE FILE NAME.sqlite"];
const char *dbpath = [dbPath UTF8String];
sqlite3 *contactDB;
sqlite3_stmt *statement;
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO tableName (tableColumn) VALUES (\"%@\")", myData];
const char *insert_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
sqlite3_bind_text(statement, 1, [myData UTF8String], -1, SQLITE_TRANSIENT);
}
else {
NSLog(@"error");
}
sqlite3_finalize(statement);
sqlite3_close(contactDB);
}
}
希望能帮助到你 :)