0
Probleme aktualisiert:Datensätze können nicht mit folgendem Code
Ich kann nicht mit dem Code unten in meinem Projekt eingefügte Datensätze aktualisieren. Wenn Update-Button geklickt wird, dann sollte Rekord upated werden und sollte in Viewcontroller
Code angezeigt:
import UIKit
class UpdateScreen: UIViewController
{
var strEmail:String!
var dictRecord:NSDictionary!
var databasepath:String!
@IBOutlet weak var txtfld_Update_Name: UITextField!
@IBOutlet weak var txtfld_Update_Phone: UITextField!
@IBOutlet weak var txtfld_Update_Email: UITextField!
@IBOutlet weak var txtfld_Update_Comment: UITextField!
override func viewDidLoad()
{
super.viewDidLoad()
print(dictRecord!)
txtfld_Update_Name.text! = (dictRecord["Name"]! as? String)!
txtfld_Update_Phone.text! = (dictRecord["Phone"]! as? String)!
txtfld_Update_Email.text! = (dictRecord["Email"]! as? String)!
txtfld_Update_Comment.text! = (dictRecord["Comment"]! as? String)!
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btnUpdateClicked(sender: AnyObject)
{
let filemgr = NSFileManager.defaultManager()
let dirpaths = NSSearchPathForDirectoriesInDomains(.DocumentationDirectory, .UserDomainMask, true)
let docDir = dirpaths[0] as String
databasepath = docDir.stringByAppendingString("StudentDataManipulation.sqlite");
if filemgr.fileExistsAtPath(databasepath as String)
{
let contactDB = FMDatabase(path: databasepath as String)
if contactDB.open()
{
let sql_stmt = "CREATE TABLE IF NOT EXISTS StudentData (Name TEXT, Phone TEXT, Email TEXT PRIMARY KEY NOT NULL, Comment TEXT)"
if !contactDB.executeStatements(sql_stmt)
{
print("Error: \(contactDB.lastErrorMessage())")
}
let updateSql:String = "UPDATE StudentData SET Name='\(txtfld_Update_Name.text!)', Phone='\(txtfld_Update_Phone.text!)', Comment='\(txtfld_Update_Comment.text!)'"
print("updateSql before = \(updateSql)");
let result = contactDB.executeUpdate(updateSql, withArgumentsInArray: nil)
print("updateSql after = \(updateSql)");
if !result
{
print("Error: \(contactDB.lastErrorMessage())")
}
else
{
print("Record Successfully Updated")
self.navigationController?.popViewControllerAnimated(true)
}
}
else
{
print("Error: \(contactDB.lastErrorMessage())")
}
contactDB.close()
}
}
}
Dies funktioniert gut besser als zuvor, Datensatz kann in der Konsole aktualisiert angezeigt werden, aber in der Tabelle ist es nicht aktualisiert. –
Verwenden Sie einen SQLite Manager wie Datum? Wenn ja, laden sie die Tabelle manchmal nicht automatisch neu. Sie müssen explizit auf den Reload-Button klicken. Versuch das. –