2011-02-23 92 views
0

我曾經使用這段代碼將數據寫入數據庫,但它並沒有反映到數據庫中......我不知道爲什麼?請給出您的建議!!在此先感謝..如何使用SQlite將數據寫入數據庫?

NSString* user_Name=txt_UserName.text; 
NSString* password=txt_Password.text; 
NSString* rePassword=txt_RePassword.text; 
if ([password isEqualToString:rePassword]) { 

sqlite3 *database; 
sqlite3_stmt *compiledQuery; 
// Open the database from the users filessytem 
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
    // Setup the SQL Statement and compile it for faster access 
    const char *sqlStatement = "insert into Main values(?,?)"; 
    sqlite3_prepare_v2(database, sqlStatement, -1, &compiledQuery, NULL); 
    sqlite3_bind_text(compiledQuery, 1, [user_Name UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(compiledQuery, 2, [password UTF8String], -1, SQLITE_TRANSIENT);  
    if(SQLITE_DONE != sqlite3_step(compiledQuery)) 
    NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
    sqlite3_finalize(compiledQuery); 
    sqlite3_close(database); 
} 
+0

你有調試嗎?如果循環會進入內部嗎? – KingofBliss 2011-02-23 08:33:45

+0

請使用CoreData。更強大和更友好的使用。請參閱:http://developer.apple.com/cocoa/coredatatutorial/index.html – 2011-02-23 08:37:43

回答

0

是數據庫的路徑是否正確?你可以通過檢查數據庫路徑

NSString *documentsDir = [DbCls getPath]; 
NSString *databasePath = [documentsDir stringByAppendingPathComponent:DBNAME]; 

+(NSString *) getPath 
{ 
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [documentPaths objectAtIndex:0]; 
    return documentsDir; 
} 
+0

我已經檢查過它...數據庫的路徑是正確的!因爲我也從它讀取數據...這是正常工作....感謝您展示您的興趣! – 2011-02-23 11:36:58

+0

你能告訴我錯誤嗎?當你嘗試時會得到什麼錯誤? – 2011-02-23 13:44:35

+0

我沒有收到任何錯誤。它運行良好。但在執行「插入」命令後,它不反映到數據庫中。 – 2011-02-24 06:39:24

相關問題