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 :(得分:3)
1>请检查数据库中是否有名为newstable的表格 2>您没有连接到正确的架构。
请提供更多信息,以便我们提供帮助。 至少显示您的数据库和您建立的连接。
首先尝试创建表格 (随机列随机表)
DROP TABLE IF EXISTS account ;
CREATE TABLE account (
+"accountNum INT( 11 ),"
+"accountName TEXT,"
+"description TEXT,"
+"statusAccount TEXT,"
) ;
答案 1 :(得分:0)
那是因为您的数据库中没有任何此类表,因为错误日志会告诉您。检查数据库查询。由于您的架构包含标题,描述和日期戳,因此newstable
表的表创建查询应如下所示:
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];
在您的代码中,插入查询错误,因为您说insert into table
而不是提供表名。您也可以将数组作为值传递,而不是传递字符串。它应该是:
//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];
}
同样FMResultSet *Results=[Database executeQuery:@"select *from table"];
应为:
FMResultSet *Results=[Database executeQuery:@"select *from newstable"];
您也应该遵循适当的变量命名约定。
我个人更喜欢使用一些外部程序创建一个.db
文件,将其添加到我的App包中,然后在第一次运行时将其导入我的App的文档目录。视觉创作总能省去很多麻烦,以防你拼错。