2

我需要你的帮助..如何从 sqlite db 中删除表中的所有行?请你能说如何一步删除所有行(不是一一)..

4

5 回答 5

10

执行此操作的普通 SQL 语法:

DELETE FROM tablename
于 2012-08-23T09:47:29.547 回答
8

可以使用SQLite 文档处理任何 SQLite 语法查询

对于在 iOS 中删除 sqlite 表行,以下代码

NSString *query = @"delete from yourTable";
const char *sqlStatement = [query UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
// Loop through the results and add them to the feeds array
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
    // Read the data from the result row
    NSLog(@"result is here");
}

// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);

我想这解决了你的问题

于 2012-08-23T12:46:17.540 回答
4

如果你想从 SQL 表中删除所有行,然后去

DELETE FROM tablename

如果你想一一删除行

DELETE FROM tablename WHERE id=2

根据您的要求更改 id 或者您可以提及特定字段名称以及您要删除的行

于 2012-08-23T11:47:22.520 回答
1
(void) DeleteRows {


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *dbPath =[documentsDir stringByAppendingPathComponent:@"gym.db"];
BOOL success = [fileManager fileExistsAtPath:dbPath];
sqlite3_stmt *selectstmt;
if(!success)
{
    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"gym.db"];
    success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error];

    if (!success)
        NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}

if (sqlite3_open([dbPath UTF8String], &contactDB) == SQLITE_OK) {
    //*************** insert value in database******************************\\

    NSString  *sql = [NSString stringWithFormat:@"delete from Offers"];
    const char *insert_stmt = [sql UTF8String];
    sqlite3_prepare_v2(contactDB,insert_stmt, -1, &selectstmt, NULL);
    if(sqlite3_step(selectstmt)==SQLITE_DONE)
    {
        NSLog(@"Delete successfully");
    }
    else
    {
        NSLog(@"Delete not successfully");

    }
    sqlite3_finalize(selectstmt);
    sqlite3_close(contactDB);
  }
}
于 2013-07-05T12:34:24.567 回答
1
- (IBAction)deleteAll:(id)sender { 

   NSString *tableName=@"Contacts";
   NSString *qsql = [NSString stringWithFormat:@"DELETE FROM %@",
                      tableName];
   sqlite3_stmt *statement;
    if (sqlite3_prepare_v2( db, [qsql UTF8String], -1,
                           &statement, NULL) == SQLITE_OK)
        while (sqlite3_step(statement) == SQLITE_DONE){
                        NSLog(@"%@", @"deleted");
        }
    else {
    sqlite3_close(db);
    NSAssert(0, @"Failed to Delete");
    }
   sqlite3_finalize(statement);

  }
于 2013-06-07T11:38:56.533 回答