-fno-objc-arc
- (void)viewDidLoad
{
[superviewDidLoad];
//創建數據庫保存登錄信息
NSString *docsDir;
NSArray *dirPaths;
// Get the documents directory NSString *databasePath; sqlite3 *contactDB;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
docsDir = [dirPathsobjectAtIndex:0];
// Build the path to the database file
databasePath = [[NSStringalloc] initWithString: [docsDirstringByAppendingPathComponent: @"contacts.db"]];
NSLog(@"表名%@",NSHomeDirectory());
NSFileManager *filemgr = [NSFileManagerdefaultManager];
if ([filemgr fileExistsAtPath:databasePath] ==NO) {
const char *dbpath = [databasePathUTF8String];
if (sqlite3_open(dbpath, &contactDB)==SQLITE_OK) {
char *errMsg;
constchar *sql_stmt ="CREATE TABLE IF NOT EXISTS CONTACTS(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT,PASSWORD TEXT,STATE BOOL)";
if (sqlite3_exec(contactDB, sql_stmt,NULL, NULL, &errMsg)!=SQLITE_OK) {
NSLog(@"創建表失敗");
}
else{
sqlite3_stmt *statement;
NSString *insertSQL = [NSStringstringWithFormat:@"INSERT INTO CONTACTS (name,password,state) VALUES(\"%@\",\"%@\",\"%d\")",@"",@"",0];
const char *insert_stmt = [insertSQLUTF8String];
sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement,NULL);
if (sqlite3_step(statement)==SQLITE_DONE) {
NSLog(@"以存儲到數據庫");
}
sqlite3_finalize(statement);
}
sqlite3_close(contactDB);
}
else{
NSLog(@"創建./打開數據庫失敗");
}
m_isChecked = FALSE;
_login_name.text =@"";
_login_psw.text =@"";
}
else{
sqlite3_stmt *statement;
const char *dbpath = [databasePathUTF8String];
if (sqlite3_open(dbpath, &contactDB)==SQLITE_OK)
{
//執行查詢
NSString *query =@"SELECT NAME, PASSWORD, STATE FROM CONTACTS";
//sqlite3_stmt *statement;
if (sqlite3_prepare_v2(contactDB, [queryUTF8String], -1, &statement,nil) == SQLITE_OK) {
//依次讀取數據庫表格FIELDS中每行的內容,並顯示在對應的TextField
if (sqlite3_step(statement) ==SQLITE_ROW) {
//獲得數據
m_isChecked = sqlite3_column_int(statement,2);
char *rowNameData = (char *)sqlite3_column_text(statement,0);
char *rowpasswordData = (char *)sqlite3_column_text(statement,1);
//設置文本
_login_name.text = [[NSStringalloc] initWithUTF8String:rowNameData];
_login_psw.text = [[NSStringalloc] initWithUTF8String:rowpasswordData];
}
sqlite3_finalize(statement);
}
else{
NSLog(@"duqu失敗");
}
}
sqlite3_close(contactDB);
//
if (!m_isChecked) {
_login_name.text =@"";
_login_psw.text =@"";
}
}
按鈕執行的方法
sqlite3_stmt *statement;
const char *dbpath = [databasePathUTF8String];
if (sqlite3_open(dbpath, &contactDB)==SQLITE_OK) {
NSString *insertSQL = [NSStringstringWithFormat:@"UPDATE CONTACTS SET name=\"%@\",password=\"%@\", state=%d",_login_name.text,_login_psw.text,m_isChecked];
const char *insert_stmt = [insertSQLUTF8String];
sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement,NULL);
if (sqlite3_step(statement)==SQLITE_DONE) {
NSLog(@"以存儲到數據庫");
// _login_name.text = @"";
// _login_psw.text =@"";
NSLog(@"%@",_login_name.text);
NSString *userName = _login_name.text;
NSString *userPassword = _login_psw.text;
[[NSUserDefaultsstandardUserDefaults] setValue:userNameforKey:@"userName"];
[[NSUserDefaultsstandardUserDefaults] setValue:userPassword forKey:@"userPassword"];
}
else{
NSLog(@"保存失敗");
}
sqlite3_finalize(statement);
sqlite3_close(contactDB);
}