我创建了名为' Mydatabase.db'在sqlites 3中使用终端和创建的表名为'条目'其中有三列(姓名,电子邮件,食物)。 我使用此代码与AppDelegate.m文件中的数据库连接
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.Peoples=[[NSMutableArray alloc]init ];
self.databaseName = @"MyDatabase.db";
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir=[documentPaths objectAtIndex:0];
self.databasePath=[documentDir stringByAppendingString:self.databaseName];
[self CheckAndCreateDatabase];
[self readDataFromDatabase];
return YES;
}
在上面的函数中我使用NSLog输出检查数据库文件的路径是空字符串。 然后我使用这些函数来获取数据 -
(void)CheckAndCreateDatabase
{
bool success;
NSFileManager *fileManger=[NSFileManager defaultManager];
success=[fileManger fileExistsAtPath:self.databasePath];
if (success)
return;
NSString *databasePathFromApp=[[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:self.databaseName];
[fileManger copyItemAtPath:databasePathFromApp toPath:self.databasePath error:nil];
}
-(void) readDataFromDatabase{
[self.Peoples removeAllObjects ];
sqlite3 *database;
if(sqlite3_open([self.databasePath UTF8String], & database) ==SQLITE_OK)
{
char *sqlStatement="select * from entries";
sqlite3_stmt *compiledStatement;
if (sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement,NULL)==SQLITE_OK) {
while (sqlite3_step(compiledStatement)==SQLITE_ROW) {
char *n=sqlite3_column_text(compiledStatement, 1);
char *e=sqlite3_column_text(compiledStatement, 2);
char *f=sqlite3_column_text(compiledStatement, 3);
NSString *name=[NSString stringWithUTF8String:n];
NSString *email=[NSString stringWithUTF8String:e];
NSString *food=[NSString stringWithUTF8String:f];
NSLog(@"Name= %@",name);
Data *data =[[Data alloc] initWithData:name theEmail:email TheFood:food];
[self.Peoples addObject:data];
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
}
然后在TableViewController.m中,我使用'数据'来显示检索到的数据。对象
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *cellIdentifier = @"Cell";
SiteCell *cell=(SiteCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell=nil) {
cell=[[SiteCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier ];
}
NSInteger row=indexPath.row;
Data *d=[mainDelegate.Peoples objectAtIndex:row];
cell.primaryLabal.text=d.name;
cell.secondaryLabal.text=d.email;
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
如何在数据库的表视图中显示数据?我没有在tableview上显示数据原因可能是数据库连接没有建立?。我如何更正它并获得所需的输出?你可以从这个链接下载示例代码https://drive.google.com/file/d/0B5pNDpbvZ8SnQkFySHkwZm9nR1k/view?usp=sharing
答案 0 :(得分:0)
看起来您正在正确收集数据,但忘了更新表格。使用[self.yourTableView reloadData];
此行
if ($('.group1').length == $('.group1:checked').length) {
// all are checked...
$(':input[type="submit"]').prop('disabled', false);
} else {
$(':input[type="submit"]').prop('disabled', true);
}
答案 1 :(得分:-1)
将此存储库用于简单的小型库
https://github.com/prashantbelani/DBOperation
您只需要在DBOperation.m文件中更改数据库名称。
E /克。的databaseName = @ “Emoji_app.rdb”;
和在DBFunction文件中,您可以使用 selectData 编写获取数据的方法,并使用 executeSQL 执行查询 希望这会对你有所帮助。