나는 한 국가에서 도시와 거리를 선택하는 응용 프로그램을 빌드합니다. 선택 후 ID를 웹 서비스로 보내고 선택된 장소에서 사용할 수있는 모든 공간을 얻습니다. 하지만 하나 이상의 도시 또는 하나 이상의 거리를 선택하려면 어떻게해야합니까? 나는 운이없는 역동적 인 솔루션을 찾고 있습니다. 여기 webservice를 통해 동적 매개 변수를 SQL 쿼리에 전달하는 방법
는 아이폰 OS에 내 roomdownloader입니다 :-(void)raumDownloader
{
NSMutableArray *object=[[NSMutableArray alloc]init];
NSLog(@"RaumklasseID: %@ StadtID: %@ GebäudeID: %@ RegionID: %@",raumklasseid, stadtid, gebaudeid, regionid);
NSString *emptyString = @"";
[object addObject:raumklasseid];
if (stadtid==nil)
{
[object addObject:emptyString];
}
else {
[object addObject:stadtid];
}
if (gebaudeid==nil)
{
[object addObject:emptyString];
}else {
[object addObject:gebaudeid];
}
if (regionid==nil)
{
[object addObject:emptyString];
}else {
[object addObject:regionid];
}
NSMutableArray *key =[[NSMutableArray alloc]init];
[key addObject:@"RAUMKLASSE_ID"];
[key addObject:@"STADT_ID"];
[key addObject:@"GEBAEUDE_ID"];
[key addObject:@"REGION_ID"];
NSDictionary* info = [[NSDictionary alloc]initWithObjects:object forKeys:key];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:info
options:NSJSONWritingPrettyPrinted error:nil];
NSString *name = [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://nexxtsolutions-entwicklung.de/Webdienst22/service1.asmx/Raum"]];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSData *reqData = [NSData dataWithBytes:[name UTF8String] length:[name length]];
[request setHTTPBody:reqData];
NSURLResponse *response =[[NSURLResponse alloc]init];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init ];
dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
raumeArray = [dict objectForKey:@"d"];
for(int n=0; n<[raumeArray count]; n++)
{
NSLog(@"AUSGABE: %@",[[raumeArray objectAtIndex:n] objectForKey:@"RaumName"]);
}
}
당신은 내가이 웹 서비스에 보내 4 정적 매개 변수가 있음을 알 수
:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public List<RaumHelper.RAUM> Raum(string RAUMKLASSE_ID, string STADT_ID, string GEBAEUDE_ID, string REGION_ID)
{
return RaumHelper.Raum(RAUMKLASSE_ID, STADT_ID, GEBAEUDE_ID, REGION_ID);
}
및 헬퍼 클래스가 사용하는 정적 매개 변수를 SQL 쿼리 및 다시 방을 아이폰에 보내십시오 :
internal static List<RAUM> Raum(string RAUMKLASSE_ID, string STADT_ID, string GEBAEUDE_ID, string REGION_ID)
{
List<RAUM> strasseObject = new List<RAUM>();
using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
using (SqlCommand cmd = new SqlCommand(@"SELECT r.BEZEICHNUNG AS BEZEICHNUNG, r.ID AS ID, ra.BEZEICHNUNG AS raumBEZEICHNUNG FROM RAUM r, RAUMATTRIBUTE ra WHERE RAUMKLASSE_ID = ISNULL(@Raumklasse_ID, RAUMKLASSE_ID) AND STADT_ID = ISNULL(@Stadt_ID, STADT_ID) AND GEBAEUDE_ID = ISNULL(@Gebaeude_ID, GEBAEUDE_ID) AND REGION_ID = ISNULL(@Region_ID, REGION_ID) INNER JOIN RAZUORDNUNG ON RAZUORDNUNG.RAUM_ID = RAUM.ID
INNER JOIN RAUMATTRIBUTE ON RAZUORDNUNG.RAUMATTRIBUTE_ID = RAUMATTRIBUTE.", con))
{
con.Open();
if (!StringExtensions.IsNullOrWhiteSpace(RAUMKLASSE_ID))
cmd.Parameters.AddWithValue("@Raumklasse_ID", RAUMKLASSE_ID);
else
cmd.Parameters.AddWithValue("@Raumklasse_ID", DBNull.Value);
if (!StringExtensions.IsNullOrWhiteSpace(STADT_ID))
cmd.Parameters.AddWithValue("@Stadt_ID", STADT_ID);
else
cmd.Parameters.AddWithValue("@Stadt_ID", DBNull.Value);
if (!StringExtensions.IsNullOrWhiteSpace(GEBAEUDE_ID))
cmd.Parameters.AddWithValue("@Gebaeude_ID", GEBAEUDE_ID);
else
cmd.Parameters.AddWithValue("@Gebaeude_ID", DBNull.Value);
if (!StringExtensions.IsNullOrWhiteSpace(REGION_ID))
cmd.Parameters.AddWithValue("@Region_ID", REGION_ID);
else
cmd.Parameters.AddWithValue("@Region_ID", DBNull.Value);
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
if (rdr["BEZEICHNUNG"] != DBNull.Value && rdr["ID"] != DBNull.Value)
{
strasseObject.Add(new RAUM()
{
RaumName = rdr["BEZEICHNUNG"].ToString(),
RaumID = rdr["ID"].ToString()
});
}
}
}
}
return strasseObject;
}
내 질문 다시입니다 모자를 하나 이상의 도시 또는 거리를 선택한다면? ID는 동적으로 SQL 쿼리를 보내야합니다. 도움을 주셔서 미리 감사드립니다.
좋은 아이디어 감사합니다. 시도해 보겠습니다. –