2011-06-18 44 views
0

您好我已经编写了用于在数据库表中添加新条目的代码。但是在运行时显示没有找到表的消息。 如果你在这段代码中发现任何错误,请帮助我。在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); 
+0

a)* childname *是表名? b)* strTxtFldValue *是一个* C字符串*或* NSString *? – EmptyStack

+1

你确定你已经创建了这个名字的表吗?或者你有没有将数据库复制到文档目录? –

回答

0

如果从sqlite软件中执行相同的插入查询,您将得到相同的结果。因此,在您的应用中提供表名可能存在错误。或者可能是你给错了数据库名...

+0

@EmptyStack a)childname是表名.b)cString部分在代码中注释。但strTextFldValue是NSString不cString @Rahul我已经复制数据库,而不是它的引用。 @Gaurav能够使用终端将数据插入到表中。 – user804417

1

@ user804417你如何创建数据库表?如果你手动创建它,然后在资源文件夹中添加数据库文件,以便可以在模拟器中工作,但是当你在设备上运行你的应用程序时可能会出现问题,因此可能会出现类似的错误。

为了解决这个问题,请在应用程序启动时尝试使用应用程序创建数据库,这将明确地解决您的问题。

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); 
相关问题