检查数据是否存在之前插入到iPhone的SQLite数据库
问题描述:
我想插入数据到sqlite..hhile插入即时通讯获得重复在我的代码..我看到与它有关的问题和即时通讯了解有关..所有只是帮助我这个代码来检查数据插入到数据库之前存在...检查数据是否存在之前插入到iPhone的SQLite数据库
- (IBAction)AddtoFavourites:(id)sender {
sqlite3 *database;
[email protected]"dataTable.sqlite";
NSArray *documentpath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentdir=[documentpath objectAtIndex:0];
dbPath=[documentdir stringByAppendingPathComponent:dbName];
if(sqlite3_open([dbPath UTF8String], &database)==SQLITE_OK){
//I want to check data it exists already into database....
NSString *sqlStatement=[NSString stringWithFormat:@"insert into Persons(PersonName,CompanyName,ImgUrl)values(\"%@\",\"%@\",\"%@\")",model.personName,model.companyName,model.imgurl];
const char *insertSQL=[sqlStatement UTF8String];
char *errMsg;
sqlite3_exec(database, insertSQL, NULL,NULL,&errMsg);
NSLog(@"Add to Favourites");
}
}
答
首先使用select查询任何列的为:
const char *sqlStatement = "SELECT PersonName FROM Persons";
我猜你会分配到的SQLStatement编制陈述
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
// Read the data from the result row
NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
[dataArray addObject:aName];
NSLog(@"%@",aName);
}
将检查这个
我已经做了这一切对我的appdelegate读取数据库... – 2012-01-04 07:12:04
如果你的新PERSONNAME等于aName那么不插入 – 2012-01-04 07:19:44
我找到了答案..感谢你..我使用UNIQUE for personName在我的sqlite数据库中,并使用插入或忽略查询语句,而不是查询语句... – 2012-01-04 07:21:31