본문 바로가기
Education/Bit 18th

[최종프로젝트] Xaml 코드의 자바스크립트에서 DB사용 By 용호

by ★용호★ 2010. 2. 9.

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뿐만 아니라 어떤 타입을 리턴받더라도 값을 사용할 수 있다.

댓글