【发布时间】:2011-06-06 08:53:50
【问题描述】:
先生, 我正在使用 sqlite 数据库动态存储数据。我在终端中创建了数据库并将其添加到我的项目资源中。在该数据库中,我创建了一个名为 category 的表。我的问题是当我运行应用程序并尝试插入值时在文本字段中,应用程序被终止,给出一个异常,即没有名为 category 的表。我是这个 sqlite 的新手,我真的不知道为什么会发生这个异常。请让我知道发生了什么。我使用了以下编码..
- (void) addCategory{
if(addStmt == nil) {
const char *sql = "insert into Category(Categoryname, Fromquant,Toquant,Units) 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, [Categoryname UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_double(addStmt, 2, [Fromquant doubleValue]);
sqlite3_bind_double(addStmt, 3, [Toquant doubleValue]);
sqlite3_bind_text(addStmt, 4, [Units 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
CategoryID = sqlite3_last_insert_rowid(database);
//Reset the add statement.
sqlite3_reset(addStmt);
}
在数据库中的表是这样的:
CREATE TABLE "Category"("CategoryID",INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"Categoryname"VARCHAR,"Fromquant"REAL,"Toquant"REAL,"Units"VARCHAR);
【问题讨论】:
-
您确定在正确的数据库上运行查询吗?
-
有人可以编辑问题以提高代码的可见性
标签: objective-c ios4 sqlite