您好我已经编写了此代码,用于在数据库表中添加新条目。但是在运行时会显示没有找到表格的消息。 如果您在此代码中发现任何错误,请帮助我。
char *sqlStatement;
sqlite3 *pDb;
char *errorMsg;
ןnt returnCode;
char *databaseName;
databaseName = "Child.db";
returnCode = sqlite3_open(databaseName, &pDb);
if(returnCode!=SQLITE_OK) {
fprintf(stderr, "Error in opening the database. Error: %s",
sqlite3_errmsg(pDb));
sqlite3_close(pDb);
return;
}
else{
NSLog(@"Open Sucessful");
}
//sqlStatement = sqlite3_mprintf("INSERT INTO childname VALUES"
// " ('%s')",[strTxtFldValue cString],"childname");
sqlStatement = sqlite3_mprintf("INSERT INTO childname VALUES ('%s')",strTxtFldValue);
NSLog(@"sqlStatement....%c",sqlStatement);
returnCode = sqlite3_exec(pDb, sqlStatement, 0, 0, &errorMsg);
NSLog(@"return code %d",returnCode);
if(returnCode!=SQLITE_OK) {
fprintf(stderr,
"Error in inserting into the stocks table. Error: %s", errorMsg);
sqlite3_free(errorMsg);
}
else{
NSLog(@"inserted");
}
sqlite3_free(sqlStatement);
答案 0 :(得分:2)
尝试创建运行时数据库。
sqlite3_exec(database,
"CREATE TABLE IF NOT EXISTS PersonalDetailsTbl (ID INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,email TEXT,phoneNo TEXT,DOB TEXT,spouseName TEXT,aniversaryDate TEXT)",
NULL, NULL, NULL);
sqlite3_exec(database, [[NSString stringWithFormat:
@"INSERT INTO PersonalDetailsTbl VALUES(NULL, '%@','%@','%@','%@','%@', '%@')",
name,email,phoneNo,DOB,spouseName,aniversaryDate]
UTF8String],
NULL, NULL, NULL);
答案 1 :(得分:1)
@ user804417你是如何创建数据库表的?如果你是手动创建它然后在resouce文件夹中添加数据库文件,这样可以在模拟器中工作,但是当你在设备上运行你的应用程序时可能会给你带来问题,这样就有可能出现错误,如 NO表找到。
为了解决这个问题,尝试在启动应用程序时使用应用程序创建数据库,这肯定会解决您的问题。
答案 2 :(得分:0)
如果从sqlite软件执行相同的插入查询,则会得到相同的结果。因此,在您的应用中提供表名可能会出错。或者可能是您提供了错误的数据库名称......