以编程方式添加textField的文本到sqlite数据库

时间:2015-02-24 23:54:13

标签: ios objective-c sqlite

我在我的xcode项目中实现了sqlite。它从UITextField获取数据。每次用户点击texField时,都会以编程方式添加button。我将重新创造同样的' textField。 (如何。)如何将textField's数据提供给sqlie文件?

SQLite在终端中创建

CREATE TABLE myDB(myDBID integer primary key, first text, second text);

Objective C

NSString *query = [NSString stringWithFormat:@"insert into myDB values(null, '%@', '%@')", self.textView1.text, self.textView2.text];
[self.dbManager executeQuery:query];

//IBAction:
UITextField *text = [[UITextField alloc] initWithFrame:frame];
[self.view addSubview:text];

如何将以编程方式添加的textField's文本添加到sqlite数据库?

更新

基本上textFields以编程方式添加了ibaction。我想要做的是获取textFields文本并将其添加到sqlite。我不能像这样添加它:

@"insert into myDB values(null, '%@', '%@')", self.textView1.text, self.textView2.text]; 

因为我不知道会有多少个textFields,因此我不知道我应该在sqlite中创建多少个字段。 (字段含义 - 第一个文本,第二个文本

1 个答案:

答案 0 :(得分:-1)

虽然我不认为这与最佳实践有任何关系,但我相信您需要做的是迭代所有UITextField并在整个循环中调整查询,除非您想要拆分它多个查询。只要你没有任何无关的UITextField,这应该有效。订单应尽早添加 - >尽管我不是最新的,所以我会测试它。

NSMutableString *query = [[NSMutableString alloc] initWithString:@"insert into myDB values(null"];

for (id subview in self.view.subviews) {
    if ([subview isMemberOfClass: NSClassFromString(@"UITextField")]) {
        UITextField *temp = subview;
        [query appendFormat:@", '%@'", temp.text];
    }
}
[query appendString:@")"];
[self.dbManager executeQuery:query];

修改

就更新SQLite表而言,无法动态更改列数。因此,您可以使用逗号分隔的字符串在单个字段中存储多个值,或者创建大量列并将文本字段数限制为该最大值。