在sqlite中更新记录 [英] updating records in sqlite

查看:117
本文介绍了在sqlite中更新记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

- (BOOL)updatedata:(NSString *)name mobileno:(NSString *)mobileno

email:(NSString *)email性别:(NSString *)性别地址1:(NSString *)address1 address2:(NSString *)address2 city:(NSString *)city state:(NSString *)state country:(NSString *)country pincode:(NSString *)pincode dob:(NSString *)dob

{

//尝试新的

const char * dbpath = [databasePath UTF8String];

if(sqlite3_open(dbpath,& database)= = SQLITE_OK)

{



const char * sqlQuery =" UPDATE studentsDetail SET name = ?,mobileno = ?, email = ?,,性别=?,地址1 =?,地址2 =?,城市=?,州=?,国家=?,pincode =?,dob =? WHERE name ==?" ;;



sqlite3_stmt * query = nil;



int retVal;

if((retVal = sqlite3_prepare_v2(database,sqlQuery,-1,& query,NULL))== SQLITE_OK){

sqlite3_bind_text(query,1,[name UTF8String ],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,2,[mobileno UTF8String], - 1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,3,[email UTF8String ],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,4,[性别UTF8String], - 1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,5,[address1 UTF8String ],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,6,[地址2 UTF8String], - 1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,7,[城市UTF8String ],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,8,[状态UTF8String], - 1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询) y,9,[country UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(query,10,[pincode UTF8String],-1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,11,[dob UTF8String], - 1,SQLITE_TRANSIENT);

sqlite3_bind_text(查询,12,[名称UTF8String], - 1,SQLITE_TRANSIENT);



int result;

if((result = sqlite3_step(query))!= SQLITE_DONE){

NSLog(@"无法执行查询%d",result);

}

else {

NSLog(@成功更新的行!);

}

sqlite3_reset(查询);

sqlite3_finalize(查询);

}

else {

NSLog(@准备UPDATE语句%d时出错,retVal);

}

int result1 = sqlite3_close(database) ;

if(result1!= SQLITE_OK){

NSLog(@关闭数据库连接失败。结果%d",result1);

}

else {

NSLog(@成功关闭数据库连接);

}

}

返回YES;

}



i我得到一个错误:

无法执行查询5

代码中哪一行错误....

-(BOOL) updatedata:(NSString*)name mobileno:(NSString*)mobileno
email:(NSString*)email gender:(NSString*)gender address1:(NSString*)address1 address2:(NSString*)address2 city:(NSString*)city state:(NSString*)state country:(NSString*)country pincode:(NSString*)pincode dob:(NSString*)dob
{
// trying new
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &database) == SQLITE_OK)
{

const char *sqlQuery = "UPDATE studentsDetail SET name = ?,mobileno = ?,email = ?,gender = ?,address1 = ?,address2 = ?,city = ?,state = ?,country = ?,pincode = ?,dob = ? WHERE name == ?";

sqlite3_stmt *query = nil;

int retVal;
if ((retVal = sqlite3_prepare_v2(database, sqlQuery, -1, &query, NULL)) == SQLITE_OK) {
sqlite3_bind_text(query, 1, [name UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 2, [mobileno UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 3, [email UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 4, [gender UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 5, [address1 UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 6, [address2 UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 7, [city UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 8, [state UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 9, [country UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 10, [pincode UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 11, [dob UTF8String], -1, SQLITE_TRANSIENT );
sqlite3_bind_text(query, 12, [name UTF8String], -1, SQLITE_TRANSIENT );

int result;
if ((result =sqlite3_step(query)) != SQLITE_DONE) {
NSLog(@"Failed to execute the query %d",result);
}
else {
NSLog(@"Succesfully updated row !");
}
sqlite3_reset(query);
sqlite3_finalize(query);
}
else {
NSLog(@ "Error in preparing UPDATE statement %d",retVal);
}
int result1 = sqlite3_close(database);
if (result1 != SQLITE_OK){
NSLog(@"Failure in closing connection to database. Result %d",result1);
}
else {
NSLog(@ "Successfully closed DB connection ") ;
}
}
return YES;
}

i am getting an error as:
"Failed to execute the query 5"
which line of the code is wrong in it....

推荐答案

我认为你的where子句不正确,它应该是where name =?而不是==。
I think your "where" clause is incorrect, it should be "where name = ?" instead of ==.


这篇关于在sqlite中更新记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆