码迷,mamicode.com
首页 > 数据库 > 详细

数据库

时间:2016-03-29 18:04:27      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

+(NSArray *)findAll{  

    sqlite3 * db = [DB DBOpen]; //调用DB open方法  获取数据库指针  
    sqlite3_stmt * stmt;//镜像  copy出来的镜像  不影响sqlite里的内容  
       
    int result = sqlite3_prepare_v2(db, "select * from student", -1, &stmt, Nil);  
    //-1是不限制字符串的长度  &stmt是往stmt里面赋值  Const char **pzTail是设置前面哪个是不用的  
       
    NSMutableArray * peopels = [NSMutableArray array];      //制作容器  要装数据  
       
    //判断结果  0进判断    result==0表示正确  
    if (SQLITE_OK == result) {  
           
        //判断是否有下一行  
        while (sqlite3_step(stmt) == SQLITE_ROW) {  
            //int iCol 是第几个  
            int stuId = sqlite3_column_int(stmt, 0);                        //取一行中的一个 int是值的类型  
            const unsigned charchar * stuName  = sqlite3_column_text(stmt, 1);  //取一行中的一个 text是值的类型  
            const unsigned charchar * stuSex = sqlite3_column_text(stmt, 2);    //取一行中的一个 text是值的类型  
            float stuScore = sqlite3_column_double(stmt, 3);                //取一行中的一个 double是值的类型  
               
            //转换  
            NSString * currentName = [NSString stringWithUTF8String:(const charchar *)stuName];  
            NSString * currentSex = [NSString stringWithUTF8String:(const  charchar *)stuSex];  
               
               
            StudentModel * student = [StudentModel studentModelWithId:stuId name:currentName sex:currentSex score:stuScore];  
            //将model中内容 添加到  之前的容器 数组  
            [peopels addObject:student];  
        }  
           
        sqlite3_finalize(stmt);//关闭镜像  
        return peopels;//将这个装有数据的数组  返回  
    }else{  
        sqlite3_finalize(stmt);  
        return [NSArray array];  //如果没进入if  返回一个空数组  
    }  
       
}  
   
//查找单个数据  
+(StudentModel *)findPeopleWith:(NSInteger )stuId{  
    sqlite3 * db = [DB DBOpen];  
    sqlite3_stmt * stmt;  
    int result = sqlite3_prepare_v2(db, "select stuName,stuId,stuSex,stuScore from student where stuId=?", -1, &stmt, Nil);  
    sqlite3_bind_int(stmt, 1, stuId);//  第一个int是第几个问好?  第二个int  是绑定的内容  绑定问好  
       
    if (SQLITE_OK == result) {  
        if (sqlite3_step(stmt) == SQLITE_ROW) {  
               
               
            const unsigned charchar * stuName = sqlite3_column_text(stmt, 0);  
            int stuId = sqlite3_column_int(stmt, 1);  
            const unsigned charchar * stuSex = sqlite3_column_text(stmt, 2);  
            float stuScore = sqlite3_column_double(stmt, 3);  
               
               
            NSString * currentName = [NSString stringWithUTF8String:(const charchar *)stuName];  
            NSString * currentSex = [NSString stringWithUTF8String:(const charchar *)stuSex];  
               
            StudentModel * student = [StudentModel studentModelWithId:stuId name:currentName sex:currentSex score:stuScore];  
            sqlite3_finalize(stmt);  
            NSLog(@"000");  
            return student;  
        }else{  
            NSLog(@"11111");  
            return nil;  
        }  
    }else{  
        NSLog(@"222222");  
        sqlite3_finalize(stmt);  
        return nil;  
    }  
}  
//插入数据  
+(void)insertIntoModel:(StudentModel *)model{  
    sqlite3 * db = [DB DBOpen];  
    sqlite3_stmt * stmt;  
    int result = sqlite3_prepare_v2(db, "insert into student values(?,?,?,?)", -1, &stmt, Nil);  
    sqlite3_bind_int(stmt, 1, model.stuId);  
    sqlite3_bind_text(stmt, 2, [model.stuName UTF8String], -1, Nil);  
    sqlite3_bind_text(stmt, 3, [model.stuSex UTF8String], -1, nil);  
    sqlite3_bind_double(stmt, 4, model.stuScore);  
       
    if (SQLITE_OK == result) {  
        if (sqlite3_step(stmt) == SQLITE_DONE) {  
            NSLog(@"添加成功");  
            sqlite3_finalize(stmt);  
            return;  
        }else{  
            NSLog(@"添加失败");  
            sqlite3_finalize(stmt);  
            return;  
        }  
    }else{  
        NSLog(@"111");  
        sqlite3_finalize(stmt);  
   
        return;  
    }  
}  
//更新数据  
+(void)updateStuName:(NSString *)name stuSex:(NSString *)sex stuScore:(CGFloat)score stuId:(NSInteger)stuid{  
    sqlite3 * db = [DB DBOpen];  
    sqlite3_stmt * stmt;  
    int result = sqlite3_prepare_v2(db, "update student set stuName=?,stuSex=?,stuScore=? where stuId = ?", -1, &stmt, Nil);  
    sqlite3_bind_int(stmt, 4, stuid);  
    sqlite3_bind_text(stmt, 1, [name UTF8String], -1, Nil);  
    sqlite3_bind_text(stmt, 2, [sex UTF8String], -1, nil);  
    sqlite3_bind_double(stmt, 3, score);  
    if (SQLITE_OK == result) {  
        if (sqlite3_step(stmt) == SQLITE_DONE) {  
            NSLog(@"更新成功");  
            sqlite3_finalize(stmt);  
            return;  
        }else{  
            NSLog(@"更新失败");  
            sqlite3_finalize(stmt);  
   
        }  
    }else{  
        NSLog(@"shibai");  
        sqlite3_finalize(stmt);  
   
    }  
}  
   
//删除数据  
+(void)deleteModelStuId:(NSInteger)stuid{  
    sqlite3 * db = [DB DBOpen];  
    sqlite3_stmt * stmt;  
    int relust = sqlite3_prepare_v2(db, "delete from student where stuid= ?", -1, &stmt, nil);  
    sqlite3_bind_int(stmt, 1, stuid);  
    if (SQLITE_OK == relust) {  
        //step 截段  
        if (sqlite3_step(stmt) == SQLITE_DONE) {  
            NSLog(@"删除成功");  
            sqlite3_finalize(stmt);  
            return;  
        }else{  
            NSLog(@"删除失败");  
            sqlite3_finalize(stmt);  
            return;  
        }  
    }else{  
        NSLog(@"删除失败11");  
        sqlite3_finalize(stmt);  
        return;  
           
    }  
}  
   
@end  

数据库

标签:

原文地址:http://www.cnblogs.com/ooo1/p/5333887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!