【发布时间】:2011-05-10 21:01:34
【问题描述】:
这是我第一次使用 SQL,我认为我做的一切都是正确的,但我不断收到我的表不存在的错误。要创建我所做的表:
CREATE TABLE "Users" ("UserID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "UserName" VARCHAR, "Password" VARCHAR)
所以我有一个名为 Users 的表
要写入我正在调用的表:
- (void) addUser {
if(addStmt == nil) {
const char *sql = "insert into Users(UserName, Password) values (?, ?)";
if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
sqlite3_bind_text(addStmt, 1, [userName UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 2, [password UTF8String], -1, SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
else
//SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid
userID = sqlite3_last_insert_rowid(database);
//Reset the add statement.
sqlite3_reset(addStmt);
}
当我触发它时,它会关闭应用程序并给我错误
Error while creating add statement. 'no such table: Users'
我花了好几天才走到这一步,我不知道从这里到哪里去。我该怎么做才能解决这个问题?
编辑: 这就是我在 AppDelegate 文件中导入数据库的方式
- (NSString *) getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"UserDatabase.sqlite"];
}
【问题讨论】:
标签: iphone sql objective-c ios sqlite