我无法添加到我的sqlite数据库。请指教

时间:2012-03-07 11:54:47

标签: objective-c ios sqlite

filemgr = [NSFileManager defaultManager];
sqlite3_stmt *insertstatement=nil;

NSString *cruddatabase = [self.GetDocumentDirectory stringByAppendingPathComponent:@"SalaryBook.sqlite"];

sqlite3_open([cruddatabase UTF8String], &SalaryBook);

const char *sql = "insert into contactDB (name, designation, address, phone ,email ,identification, picture, doj) ?, ?,?,?,?,?,?,?";
sqlite3_prepare_v2(SalaryBook, sql, 1, &insertstatement, NULL);

sqlite3_bind_text(insertstatement,0,[theContact.name UTF8String],-1,SQLITE_TRANSIENT);
sqlite3_bind_text(insertstatement,1,[theContact.designation UTF8String],-1,SQLITE_TRANSIENT);
sqlite3_bind_text(insertstatement,2,[theContact.address UTF8String],-1,SQLITE_TRANSIENT);
sqlite3_bind_text(insertstatement,3,[theContact.phoneNumber UTF8String],-1,SQLITE_TRANSIENT);

NSLog(@"%@",theContact.phoneNumber);

sqlite3_bind_text(insertstatement,4,[theContact.emailAddress UTF8String],-1,SQLITE_TRANSIENT);
sqlite3_bind_text(insertstatement,5,[theContact.identificationProof UTF8String],-1,SQLITE_TRANSIENT);

NSData *dataForPicture = UIImagePNGRepresentation(theContact.image);

sqlite3_bind_blob(insertstatement,6,[dataForPicture bytes],[dataForPicture length],SQLITE_TRANSIENT);
sqlite3_bind_text(insertstatement,7,[theContact.dateOfJoining UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_step(insertstatement);
sqlite3_finalize(insertstatement);

sqlite3_close(SalaryBook);    

我可以从数据库中读取但无法写入任何内容。

1 个答案:

答案 0 :(得分:0)

插入字符串的格式是.. INSERT INTO table_name(column1,column2,column3,...) VALUES(value1,value2,value3,...)

所以在字符串中替换它(双引号)&尝试... 插入contactDB(名称,名称,地址,电话,电子邮件,身份证明,图片,doj)值(?,?,?,?,?,?,?,?)