【发布时间】:2018-01-30 07:52:33
【问题描述】:
我已经创建了如下的 sqlite db Table
NSString * sqlStmt =@"CREATE TABLE IF NOT EXISTS SONGS (ID INTEGER PRIMARY KEY AUTOINCREMENT, SONGNAME TEXT UNIQUE NOT NULL,ALBUMNAME TEXT ,ARTIST TEXT ,SIZE FLOAT ,IMAGE BLOB)";
当我试图从这个表中获取数据时,一无所获
NSString *sqlQuery = [NSString stringWithFormat:
@"SELECT ARTIST ,IMAGE FROM SONGS WHERE SONGNAME=kannulada"];
但是当我试图通过 id 获取数据时,我正在获取数据。
NSString *sqlQuery = [NSString stringWithFormat:
@"SELECT ARTIST ,IMAGE FROM SONGS WHERE id=1"];
当我调试它时不执行准备循环
-(NSMutableArray*)retrieveDataArrayWHICHISequql
{
[dataArray removeAllObjects];
sqlite3_stmt *statement;
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &_SQliteDB) == SQLITE_OK)
{
const char * selectQuery =[sqlQuery UTF8String];
if (sqlite3_prepare_v2(_SQliteDB, selectQuery, -1, &statement, NULL)== SQLITE_OK)
{
while (sqlite3_step(statement)== SQLITE_ROW)
{
NSString * addressStr = [[NSString alloc]initWithUTF8String:(const char*)sqlite3_column_text(statement, 0)];
NSString * phNumStr = [[NSString alloc]initWithUTF8String:(const char*)sqlite3_column_text(statement, 1)];
// NSString * nameStr = [[NSString alloc]initWithUTF8String:(const char*)sqlite3_column_text(statement, 2)];
NSMutableDictionary * dataDict = [[NSMutableDictionary alloc]init];
[dataDict setObject:addressStr forKey:@"getaddress"];
[dataDict setObject:phNumStr forKey:@"getphone"];
// [dataDict setObject:nameStr forKey:@"getname"];
[dataArray addObject:dataDict];
}
sqlite3_finalize(statement);
sqlite3_close(_SQliteDB);
}
}
return dataArray;
【问题讨论】:
-
您是否使用过与此
kannulada相关的任何区分大小写的内容@ -
我使用与歌曲名称完全相同的 NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO SONGS (SONGNAME ,ALBUMNAME ,ARTIST ,SIZE ,IMAGE) VALUES (\"%@\", \"%@\",\"%@\",\"%@\",\"%@\")",self.currentSongTitleName,self.currentSongAlbum,self.currentSongArtistName,display,self.imageDataFromMusic];
-
使用
'kannulada' -
@Anbu.Karthik 谢谢兄弟它的工作
-
欢迎我的姐妹/兄弟
标签: ios objective-c sqlite