在sqlite数据库表中添加新条目

时间:2011-06-18 10:24:14

标签: iphone sqlite

您好我已经编写了此代码,用于在数据库表中添加新条目。但是在运行时会显示没有找到表格的消息。 如果您在此代码中发现任何错误,请帮助我。

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); 

3 个答案:

答案 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软件执行相同的插入查询,则会得到相同的结果。因此,在您的应用中提供表名可能会出错。或者可能是您提供了错误的数据库名称......