2011-10-31 4 views
-1

Я делаю регистрационную форму, в которой у меня есть две страницы для завершения процесса регистрации.Как создать регистрационную форму и сохранить данные на sqlite?

стр.1 содержит:

У меня есть 8 TextField и одна кнопка отправки на странице 1 ...

когда-либо пользователь, введите значение в текстовое поле и нажмите на кнопку отправить все ввести значение в текстовое поле должно получить вставьте в мою таблицу sqlite и перейдите на следующую страницу с тем же значением в текстовом поле.

страница 2 содержит

У меня есть 8 текстовое поле и две кнопки: Изменить и продолжить в стр.2 ... Эта страница должна содержать всю величину TextField стр.1 в нем, так что он может проверить значение ввода им правильно или нет, и если нет, то он должен иметь возможность редактировать их и сохранять их и двигаться дальше .....

ниже моя страница 1 код: .h файл

#import <UIKit/UIKit.h> 
#import "/usr/include/sqlite3.h" 
#import "Confirmation_form.h" 

@interface Registration_Form : 

UIViewController<UITextFieldDelegate> { 
    Confirmation_form *con_form; 

    sqlite3 *test1DB; 

    IBOutlet UITextField *UserName; 
    IBOutlet UITextField *Password; 
    IBOutlet UITextField *ConfirmPassword; 
    IBOutlet UITextField *Name; 
    IBOutlet UITextField *Email; 
    IBOutlet UITextField *ContactNO; 
    IBOutlet UITextField *MobileNo; 
    IBOutlet UITextField *Address; 
    NSString *databasePath; 

} 
@property(nonatomic,retain)IBOutlet UITextField *UserName; 

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

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

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

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

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

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

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


-(IBAction) submit; 

это мой .m файл:

#import "Registration_Form.h" 


@implementation Registration_Form 
@synthesize UserName,Password,ConfirmPassword,Name,Email,ContactNO,MobileNo,Address; 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 

    NSString *docsDir; 

    NSArray *dirPaths; 


    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    docsDir = [dirPaths objectAtIndex:0]; 

    databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:@"test1.db"]]; 


    NSFileManager *filemgr = [NSFileManager defaultManager]; 

    if([filemgr fileExistsAtPath: databasePath ] == NO) 
    { 
     const char *dbpath = [databasePath UTF8String]; 

     if(sqlite3_open(dbpath, &test1DB) ==SQLITE_OK) 
     { 
      char *errMsg; 

      const char *sql_stmt = "CREATE TABLE IF NOT EXISTS test (ID INTEGER PRIMARY KEY AUTOINCREMENT, USERNAME TEXT, PASSWORD TEXT, CONFIRMPASSWORD TEXT, NAME TEXT, EMAIL TEXT, CONTACTNO MUMBER, MOBILENO NUMBER,ADDRESS TEXT)"; 


      if(sqlite3_exec(test1DB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK) 
      { 
       //status.text = @"Failed to create table"; 
      } 
      sqlite3_close(test1DB); 
     }else { 
      //status.text = @"Failed to open/create database"; 
     } 

    } 
    [filemgr release]; 
    [super viewDidLoad]; 
} 


-(void)submit 
{ 

sqlite3_stmt *statement; 

    const char *dbpath = [databasePath UTF8String]; 

    if (sqlite3_open(dbpath, &test1DB) == SQLITE_OK) 
    { 
     NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO test(UserName, 

Password, ConfirmPassword, Name, Email, ContactNO, MobileNo, Address) VALUES (\"%@\", \"%@\", 

\"%@\", \"%@\", \"%@\", \"%@\", \"%@\", \"%@\")",UserName.text, Password.text, ConfirmPassword.text, 

Name.text, Email.text, ContactNO.text, MobileNo.text, Address.text]; 

     const char *insert_stmt = [insertSQL UTF8String]; 

     sqlite3_prepare_v2(test1DB, insert_stmt, -1, &statement, NULL); 

     if(sqlite3_step(statement) == SQLITE_DONE) 
     { 
      //status.text = @"Contact added"; 
      UserName.text = @""; 
      Password.text = @""; 
      ConfirmPassword.text = @""; 
      Name.text = @""; 
      Email.text = @""; 
      ContactNO.text = @""; 
      MobileNo.text = @""; 
      Address.text = @""; 


     }else { 
      //status.text = @"Failed to add Contact"; 
     } 
     sqlite3_finalize(statement); 
     sqlite3_close(test1DB); 

    } 

    con_form = [[Confirmation_form alloc] initWithNibName:@"Confirmation_form" bundle:[NSBundle 

mainBundle]]; 

    [self.navigationController pushViewController:con_form animated:YES]; 

} 

пожалуйста, помогите мне

Thank в

+0

Вы попробовали этот код? Были ли ошибки? Что сказали ошибки? – sosborn

+0

это мой код ... и я пробовал это ..... я могу вставить данные в свою базу данных, но я не могу отобразить те же данные на следующей странице ... пожалуйста, помогите мне – Nilesh

ответ

0

Прежде всего, вы должны создать объект NSString и их имущества в вашем 1stcontroller, чем после того, как сохранить текст подается значение в этом NSString .eg.passstring = UserName.text;

Затем передайте эту строку следующему 2-му контроллеру.

Создав объект 1stcontroller. Подобно этому 1stcontroller * urobject = [[1stcontroller alloc] init]; yourtextfiled = urobject.passstring;

я надеюсь, что это поможет вам

0

Большой учебник по чистой SQLite here.

Но я бы предложил просто использовать свойства, если эти данные не нужны за второй формой.

Кроме того, если вы собираетесь много работать с db, я бы предложил FMDatabase.

 Смежные вопросы

  • Нет связанных вопросов^_^