急急急!C#web百度地图api调用

vs2010下开发的网页地图
实现:从SQL数据库读取全部经纬度信息,然后都标注在地图上
图片说明
我想实现从数据库读取经纬度,然后把三个点都标注在地图上
已经纠结好长时间了,大家做过的来指导下

用DataReader从数据库读取经纬度传串成一个字符串然后赋值给一个全局变量,使用服务器端标签<%%>给aspx页面的js变量,然后js依据这个js变量生成Marker

 while(dr.Read())
{
s+=",{lng:"+dr["longitude"].ToString()+",lat:"+dr["latitude"].ToString()+"}";//假设s为全局变量
}
s="["+s.Trim(',')+"]";
 <script>
var Markers=<%=s%>///////////////////
</script>
<script>
var map = new BMap.Map("xxxx");
for(var i=0;i<Markers.length;i++)
map.addOverlay(new BMap.Marker(new BMap.Point(Markers[i].lng ,Markers[i].lat)));
</script>

图片说明
我想实现点击每个标注,都能从数据库读出对应的信息,这样该怎么办啊?

  while(dr.Read())
{
//tl为信息窗口标题,多有个列信息组合自己+起来然将单引号替换为实体防止字符串不闭合,同时换行\r\n也要去掉
//msg存储弹出窗口需要显示的信息,也需要做替换,和tl一样
  s+=",{lng:"+dr["longitude"].ToString()+",lat:"+dr["latitude"].ToString()+",tl:'"+(dr["xxx"].ToString()+dr["xxxx"].ToString()).Replace("'","&apos;").Replace("\n","").Replace("\r","")+"'',msg:'"+(dr["xxx"].ToString()+dr["xxxx"].ToString()).Replace("'","&apos;").Replace("\n","").Replace("\r","")+"'}";//假设s为全局变量
}
s="["+s.Trim(',')+"]";

  <script>
var Markers=<%=s%>///////////////////
</script>
<script>

    function createOpenEvent(tl,msg,marker) {//marker点击事件,需要做闭包
        return function () {
            var opts = {
                width: 250,     // 信息窗口宽度    
                height: 100,     // 信息窗口高度    
                title:tl  // 信息窗口标题   
            }
            var infoWindow = new BMap.InfoWindow(msg, opts);  // 创建信息窗口对象    
            map.openInfoWindow(infoWindow, marker.getPosition());      // 打开信息窗口
        }
    }
    // 百度地图API功能
    var map = new BMap.Map("allmap");
    var point = new BMap.Point(116.417854,39.921988);
    map.centerAndZoom(point, 15);
    for (var i = 0; i < Markers.length; i++) {
        var Marker = new BMap.Marker(new BMap.Point(Markers[i].lng, Markers[i].lat));
        Marker.addEventListener('click', createOpenEvent(Markers[i].tl, Markers[i].msg, Marker));
        map.addOverlay(Marker);
    }
</script>