2016-04-07 8 views
-4
TitleArray=[NSMutableArray arrayWithObjects:@“aaaa",@“bbbb",@“cccc",@“dddd",@“eeee",@“ffff", nil]; 

    DescArray=[NSMutuableArray arrayWithObjects:@“xxx”,@“yyy”,@“zzz”,@“www”,@“sss”,@“ppp”,nil]; 

Array=[[NSMutableArray alloc]init]; 

FMDatabase *Database=[FMDatabase databaseWithPath:[Utility getDatabasePath]]; 

[Database open]; 
[Database executeUpdate:@"insert into table(title,description) values(?,?);",TitleArray,DescArray]; 

FMResultSet *Results=[Database executeQuery:@"select *from table"]; 

while ([Results next]) { 

    Obj *Object1=[[Obj alloc]init]; 

    Object1.Title=[Results stringForColumn:@"title"]; 

    Object1.Description=[Results stringForColumn:@"description"]; 
    [Array addObject:Object]; 
} 

[Database close]; 
+0

Versuchen Sie, das Protokoll vor dem Posten auf Stackoverflow zu lesen. Was bedeutet 'DB Error: 1 'keine solche Tabelle: newstable" 'sag dir? – NSNoob

+0

Ihre Datenbank hat keine Tabelle namens 'newstable'. Warum das? Nur du kannst es sagen. Überprüfen Sie Ihre Tabellenerstellungsabfragen. – NSNoob

+0

Überprüft, ob die Tabelle erstellt wurde, aber nicht funktioniert – Preetha

Antwort

3

1> Überprüfen Sie, ob Sie eine Tabelle mit dem Namen newstable in Ihrer Datenbank oder 2 haben> Sie sind rechts-Schema nicht angeschlossen.

Bitte geben Sie weitere Informationen, damit wir Ihnen helfen können. zumindest zeigen Sie Ihre Datenbank und die Verbindungen, die Sie gemacht haben.

VERSUCHEN diese Tabelle zunächst (random Tabelle mit zufälligen Spalten)

DROP TABLE IF EXISTS account ; 
CREATE TABLE account ( 
        +"accountNum INT(11)," 
        +"accountName TEXT," 
        +"description TEXT," 
        +"statusAccount TEXT," 
        ) ; 
+0

[Datenbank executeUpdate: @ "CREATE TABLE, falls nicht vorhanden Tabellenname (Titeltext, Beschreibungstext, Datum Datum)"]; – Preetha

+0

Dies ist die Abfrage wird verwendet, um die Tabelle zu erstellen – Preetha

+1

@Preetha gibt es keinen Primärschlüssel in Ihrer Tabelle. Sind Sie sicher, dass Sie die Datenbank vor dem Ausführen dieser Abfrage geöffnet haben? – NSNoob

0

Das ist zu schaffen, weil Sie keine solche Tabelle in Ihrer Datenbank haben Sie als das Fehlerprotokoll sagt. Überprüfen Sie Ihre Datenbankabfragen. Als Ihr Schema enthält sollte wie sein Titel, Beschreibung und Datumsstempel, Tabellenerstellung Abfrage für Ihre newstable Tabelle:

FMDatabase *database = [FMDatabase databaseWithPath:@"Your database path"]; 
[database open]; 
[database executeUpdate:@"CREATE TABLE newstable (id INTEGER PRIMARY KEY DEFAULT NULL,title TEXT DEFAULT NULL,description TEXT DEFAULT NULL,date TEXT DEFAULT NULL)"]; 
[database close]; 

In Ihrem Code, Ihre Einfügung Abfrage falsch ist, wie Sie insert into table anstelle des Gebens Tabellennamen sagen. Sie übergeben Arrays auch als Werte, wenn Sie stattdessen Strings übergeben sollten. Es sollte sein:

//Assuming your desc Array and title Array will be of the same count. 
for(int i=0;i<titleArray.count;i++) 
{ 
    [database executeUpdate:@"INSERT INTO newstable (title, description) VALUES (?, ?)", [NSString stringWithFormat:@"%@", [titleArray objectAtIndex:i]],[NSString stringWithFormat:@"%@", [descArray objectAtIndex:i]], nil]; 
} 

Ähnlich FMResultSet *Results=[Database executeQuery:@"select *from table"]; sein sollte:

FMResultSet *Results=[Database executeQuery:@"select *from newstable"]; 

sollten Sie die richtige Namenskonvention für Ihre Variablen folgen.

Persönlich bevorzuge ich es, eine .db Datei mit einem externen Programm zu erstellen, sie zu meinem App-Bundle hinzuzufügen und dann beim ersten Start in das Dokumentenverzeichnis meiner App zu importieren. Die visuelle Erstellung spart immer eine Menge Ärger, wenn Sie etwas falsch schreiben.

+0

Mr.NSNoob ist versucht, aber das ist nicht aufgewacht, stil zeigt den gleichen Fehler – Preetha

+0

@Preetha Sie müssen Ihre Datenbank öffnen, bevor Sie die Tabelle mit 'Methode [Datenbank öffnen]' erstellen . Diese Abfrage, die ich hier geschrieben habe, funktioniert gut. Kann nicht sagen, warum es nicht für Sie arbeitet, wenn Sie Ihren Code in Ihrer Frage nicht zeigen. – NSNoob

+0

Ja, bevor ich die Datenbank erstellen und öffnen – Preetha