2011-04-25 126 views
2

我见过很多教程如何从SQLite数据库中读取数据,但从不写入数据。 我想将UITextField的文本保存到数据库表中的字段中。 你会如何做到这一点?可能吗?请包含任何有用的链接。如何将文本从UITextField保存到SQLite数据库中?

谢谢。

+1

可能重复的[如何在数据库中存储数据(sqlite)](http://stackoverflow.com/questions/5469003/how-to-store-data-in-databasesqlite) – 2011-04-25 10:00:49

回答

1

GetDatabasePath方法获取数据库路径。

- (void)insertIntoDtabase:(NSString*)text { 


    sqlite3_stmt *statement = nil; 
    char sql[1000]; 
    sprintf(sql, "Insert into *yourtablename* values ('%s')",[text UTF8String],); 

    NSString *path = [self GetDatabasePath] ; 
    if(sqlite3_open([path UTF8String],&database) == SQLITE_OK) 
    { 
     if((sqlite3_prepare_v2(database, sql, -1, &statement, NULL)) == SQLITE_OK) 
     { 
      //NSLog(@"%s",sql); 
      sqlite3_step(statement); 
     } 
     sqlite3_finalize(statement); 
    } 
    sqlite3_close(database); 


} 

当您要在数据库中添加文本字段数据并将文本字段数据作为参数传递时,您调用此方法。

+0

你在哪里我的代码? appDelegate,ViewController,另一个类...? This line: sprintf(sql,“Insert into * yourtablename * values('%s')”,[text UTF8String],); 给出了一个错误:''''标记之前的预期表达式。 另一个错误是“数据库未申报”。我应该填写这个值吗?谢谢。 – SEG 2011-04-25 11:38:32

+0

我是新来的sqlite,所以我不知道该怎么办... – SEG 2011-04-25 11:40:02

+0

我认为你已经创建和执行数据库和行会出错,因为你必须写你的表名。 – Gypsa 2011-04-25 11:44:17

0

由于您需要访问iOS上的SQLite数据库,您还可以学习如何使用Core Data来完成此操作。

One of the simplest metrics is that, with Core Data, the amount of code you write to support the model layer of your application is typically 50% to 70% smaller as measured by lines of code. This is primarily due to the features listed above—the features Core Data provides are features you don’t have to implement yourself.

但是,除非你有数据量好来存储,这将是更快和更容易使用NSUserDefaults,而不是SQLite的。示例:

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:myString forKey:@"KEY"]; 
NSString *string = [defaults objectForKey:@"KEY"]; 
相关问题