SQLite 的示例应用程序

Posted

技术标签:

【中文标题】SQLite 的示例应用程序【英文标题】:Sample Application for SQLite 【发布时间】:2011-02-22 16:30:36 【问题描述】:

朋友们好 我正在开发应用程序,其中视图有一个 textField 和 2 个按钮。当用户单击“添加”时,文本字段中的文本应存储在数据表中。当用户单击“显示”时,从数据库中获取的数据应显示在文本字段中。写的代码是这样的

//SettingsApplicationViewController.h

#import "FMDatabase.h"

@interface SettingsApplicationViewController : UIViewController 

    FMDatabase *db;

    IBOutlet UITextField *urlField;

    IBOutlet UIButton *insertButton;

    IBOutlet UIButton *displayButton;



@property(nonatomic, retain) IBOutlet UITextField *urlField;

@property(nonatomic, retain) IBOutlet UIButton *insertButton;

@property(nonatomic, retain) IBOutlet UIButton *displayButton;

-(void)insertButtonClicked :(id)sender;

-(void)displayButtonClicked:(id)sender;

-(id)initApp;


@end

//  SettingsApplicationViewController.m

    #import "SettingsApplicationViewController.h"
#import "FMDatabase.h"

@implementation SettingsApplicationViewController


@synthesize urlField;

@synthesize insertButton;

@synthesize displayButton;

-(id)initApp



    if(![super init])
        return nil;

    //DB stored in application bundle
    NSString *DBName = @"SettingDB.sqlite";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingString:DBName];

    db = [FMDatabase databaseWithPath:path];
    [db setLogsErrors:TRUE];
    [db setTraceExecution:TRUE];

    if(![db open])
    
        NSLog(@"Could not open Database");
        return 0;
    

    else
    
        NSLog(@"Database opened successfully");
    
    return self;



    - (void)viewDidLoad 
    [super viewDidLoad];
    [self initApp];



    -(void)insertButtonClicked :(id)sender


[db executeUpdate:@"insert into Settings values (?)",urlField.text];
    [self resignFirstResponder];



    -(void)displayButtonClicked:(id)sender



    NSString *returnResult = [[NSString alloc]init];
    FMResultSet *rs = [db executeQuery:@"select url from Settings"];
    while ([rs next])
    
        returnResult = [rs stringForColumn:@"url"];
        [urlField setText:returnResult];
    




// SettingDB.sqlite

CREATE TABLE Settings(url text(50));

我在 IB 中创建了连接并复制了 libsqlite3.dylib 和 FMDatabase 文件。我不知道为什么这篇文章中没有打印“#”,但我的代码中有 #。

当我编译此代码时,它显示 1 个错误,如下所示

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

请帮助我的朋友。 谢谢

【问题讨论】:

【参考方案1】:

当您在 Xcode 中引用一个文件并且该文件不在上述路径中时,通常会显示此错误。 (该文件将在项目导航器中显示为红色)

【讨论】:

【参考方案2】:

您是否为这些按钮分配了操作?

如果不按如下操作,

使用-(IBAction)insertButtonClicked :(id)sender; 代替-(void)insertButtonClicked :(id)sender; 并将它们分配给相应的按钮操作。

否则,

在viewdidLoad中,

[insertButton addTarget:self action:@selector(insertButtonClicked:)   forControlEvents:UIControlEventTouchUpInside]; 
[displayButton addTarget:self action:@selector(displaytButtonClicked:)   forControlEvents:UIControlEventTouchUpInside]; 

【讨论】:

我尝试了你的建议仍然存在相同的错误 => 命令 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 失败,退出代码为 1 查看此帖***.com/questions/1248520/… @ KingofBliss => 我没有收到任何警告。仅提及 1 个错误。 可能有一些文件没有参考。您可以在红色字母中看到该类型的文件。删除该文件。

以上是关于SQLite 的示例应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何为我的 iPhone 应用程序创建示例 SQLite DB?

使用 System.Data.SQLite 和 Entity Framework 6 的简单示例

使用Xamarin开发移动应用示例——数独游戏使用数据库

在 JDBC Sqlite 中创建数据库

python内置库--sqlite3

从 iPad 应用程序发送电子邮件后,sqlite 数据库没有数据