2011-06-11 17 views
0

我有一个方法,当我插入一个唯一的nric作为参数时,应该返回PatientDetails对象。这不起作用。但是,当我改变这种方法接受int age而不是NSString * nric,它的工作。如何从目标中的表中选择字符串属性c

是否有我的语法错误"WHERE ic = %s"因为它似乎更加奇怪。我已经搜索了两天,并找不到解决方案。

请帮忙,因为我是一个新手。

- (PatientDetails *)patientDetails:(NSString *)nric { 
    PatientDetails *retval = nil; 
    NSString *query = [NSString stringWithFormat:@"SELECT ic, district, age, race, referralSource, DMRelatedAdmin, postalCode FROM patientInfo WHERE ic = %s" , nric]; 
    sqlite3_stmt *statement; 
+0

请把代码放在代码环境中。并请提供更多代码。查询在哪里使用?声明来自哪里? – dasdom 2011-06-11 07:13:21

回答

1

%s表示标准C字符串。为了使用NSString对象作为参数,您需要使用对象表示法%@

WHERE ic = '%@'

+0

哇...非常感谢!你救了我很多时间!感激! – 2011-06-11 07:38:47

+0

@Luck Yong,干杯:-) – EmptyStack 2011-06-11 07:46:42

0

是的,Objective-C字符串的格式说明符是%@。所以它应该是,

NSString *query = [NSString stringWithFormat:@"SELECT ic, district, age, race, referralSource, DMRelatedAdmin, postalCode FROM patientInfo WHERE ic = %@" , nric]; 
+0

嗨Deepak ..非常感谢您的帮助!但我认为我需要西门子的ic ='%@'.. – 2011-06-11 07:37:55

+0

哦,是的,忘记了那个关于格式说明符的引用。你应该选择Simon的答案作为正确答案。在答案左边勾上标记。 – 2011-06-11 07:43:07

相关问题