2010년 2월 9일 화요일
- 자바스크립트에서 DB를 사용하기 위한 한가지 방법으로 웹서비스를 사용한다.
- 웹서비스 소스에서 다음과 같은 형식으로 작성한다.
[WebMethod] public ArrayList GetInfoByUser() { string constr = @"Data Source=용호?\SQL2005;Initial Catalog=S_MAPDB;Integrated Security=True" SqlConnection con = new SqlConnection(constr); SqlCommand com = new SqlCommand();
com.Connection = con; com.Connection.Open(); ArrayList ubcon = new ArrayList();
com.CommandText = "GetInfoByUser" com.CommandType = CommandType.StoredProcedure;
SqlDataReader sdr = com.ExecuteReader();
while (sdr.Read()) { UBinfo ubinfo = new UBinfo();
ubinfo.id = sdr["id"].ToString(); ubinfo.x = double.Parse(sdr["x"].ToString()); ubinfo.y = double.Parse(sdr["y"].ToString()); ubinfo.title = sdr["title"].ToString(); ubinfo.info = sdr["info"].ToString(); ubinfo.date = sdr["date"].ToString(); ubcon.Add(ubinfo); }
com.Connection.Close();
return ubcon; } |
- 그 다음 xaml 코드에서 웹서비스를 호출하여 사용한다.
function GetInfoByUser(val) { var cnt = 0; while (val[cnt]) { var id = val[cnt].id; var x = val[cnt].x; var y = val[cnt].y; var title = val[cnt].title; var binfo = val[cnt].info; var date = val[cnt].date;
//위?도?, 경?도? 값?을? 좌?표?로? 변?환? var nl = new NLatLng(x, y); var p = mapObj.fromLatLngToTM128(nl);
mapObj.addOverlay(createMarker(p, cnt, title + "<br>" + id + " " + date + "<br>" + binfo, 1)); cnt++; } }
DB.GetInfoByUser(GetInfoByUser); //웹서비스의 메소드를 호출한다. |
여기서 웹서비스의 메소드를 호출하는 부분의 인자로 xaml에서 사용하는 함수를 매치시켜주면 해당 웹서비스 메소드를 수행한 후에 매치된 함수로 연결이 된다.
xaml 코드 상의 함수의 매개변수로 넘어오는 val값은 웹 메소드에서 리턴한 ArrayList값이 들어온다. var 타입은 어떠한 타입의 변수도 받을 수 있으므로 웹 메소드에서 사용한 형식 그대로 사용하면 된다. val에는 ArrayList뿐만 아니라 어떤 타입을 리턴받더라도 값을 사용할 수 있다.
'Education > Bit 18th' 카테고리의 다른 글
[최종프로젝트] 문서화작업 (0) | 2010.02.23 |
---|---|
[최종프로젝트] 시연회 발표자료 (0) | 2010.02.15 |
OpenApiMap을 사용하다가 웹 사이트 주소 또는 포트가 변경되었을 시 By 용호 (0) | 2010.02.08 |
SQL Server 실행 시 DB에 연결 실패 오류 By 용호 (0) | 2010.02.08 |
[최종프로젝트] CxImage 사용 By 용호 (2) | 2010.02.07 |
댓글