关于“Asp.net 中后台CS读取数据库数据生成数组传递给前台页面JS使用”

最近,由于项目需要需要将传感器的地理位置信息标记在百度地图上,无线传感器节点能够将自身经纬度信息,通过网络传递到数据库存储起来,然后将其读出来并在百度地图在地图上标记显示出来. 首先,在后台CS需要将经纬度读取出来,后台代码如下所示:
    private double[] Longitudes=new double[1024];
    private double[] Latitudes=new double[1024];
    public string longitude=string.Empty;
    public string latitude=string.Empty;
    public static int SumCount;
    protected void Page_Load(object sender, EventArgs e)
    {
        
          if (!Page.IsPostBack)
          {
              GetLongitude();
              GetLatitude();
          }
         
          
         
    }
    //获取经度
    public void GetLongitude(){
        DBAccess db = new DBAccess();//自己写的连接读取数据库
        SqlDataReader da = db.GetLongitudeData("北京");//获取北京监测站的经纬度
        int count = 0;
        while (da.Read())
        {
            Longitudes[count] = System.Double.Parse(da["Longitude"].ToString());
            longitude += Longitudes[count]+"|";//将读取的传感器经纬度存储为字符串形式
           
            count = count + 1;
        }
        SumCount = count;
    }
    //获取纬度
    public void GetLatitude(){
        DBAccess db = new DBAccess();
        SqlDataReader da = db.GetLongitudeData("北京");//获取北京监测站的经纬度
        int count = 0;
        while (da.Read())
        {
            Latitudes[count] = System.Double.Parse(da["Latitude"].ToString());
            latitude+=Latitudes[count]+"|";//将读取的传感器经纬度存储为字符串形式

            count = count + 1;
        }
  

标记为红色的地方为后来修改加上的,一开始在程序里面就只定义了两个浮点型数组

   private double[] Longitudes=new double[1024];
   private double[] Latitudes=new double[1024];

取完数据以后再前台JS中调用利用ASP的调用语法<%=Longitudes%>和<%=Latitudes%>在前台调用后台生成的数组。当在前台JS调用时,始终出现无法显示数组信息的现象。然后,我跟大家一样GOOGLE查询了许多类似的“Asp.net 后台数组如何传递给前台JS调用”,最后在这篇文章中查找到了类似的方法

http://topic.csdn.net/u/20090609/15/d590347d-4ebc-42ce-b2ae-6afa036b1762.html。所以在代码中加入了标记为红色的代码,将浮点型数组转换成字符串的形式,然后在前台JS写了如下代码:

      var array1 = '<%=longitude%>';//后台生成的经纬度字符串
      var array2 = '<%=latitude %>';//后台生成的经纬度字符串
      var pointX = array1.split('|');//解析字符串,生成相应的数组
      var pointY = array2.split('|');//解析字符串,生成相应的数组
      var count = pointX.length;//数组长度
      for (var i = 0; i < count; i++) {
          if (pointX[i] > 0 && pointY[i] > 0) {
              addMarker(new BMap.Point(pointX[i], pointY[i]), i + 3); //向百度地图添加标记
          }
     }
    
      
通过上述转换,就能偶实现后台数组为前台JS所用。虽然网上说的还有许多方法,但小弟时间有限,只实现了这种方法: 后台数组转换成字符串,传递给前台,在前台进行解析。希望能偶对大家有帮助,我也是菜鸟,写的不好请大家多多包涵。程序运行如下图所示:读取数据库节点经纬度,在百度地图上标记出来。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
ASP.NET,可以使用Chart控件来读取数据库数据并展示为图表形式。下面是一个简单的示例: 首先,需要在页面引入Chart控件: ``` <%@ Register Assembly="System.Web.DataVisualization" Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %> ``` 然后,可以在页面添加一个Chart控件: ``` <asp:Chart ID="chart1" runat="server" Width="500" Height="300"> </asp:Chart> ``` 接下来,在后端代码,可以编写代码来读取数据库数据,并将其绑定到Chart控件上: ``` protected void Page_Load(object sender, EventArgs e) { // 从数据库读取数据 DataTable dataTable = GetDataFromDatabase(); // 设置Chart控件的数据源 chart1.DataSource = dataTable; // 设置X轴的数据字段 chart1.Series[0].XValueMember = "XField"; // 设置Y轴的数据字段 chart1.Series[0].YValueMembers = "YField"; // 绑定数据到Chart控件 chart1.DataBind(); } private DataTable GetDataFromDatabase() { // 从数据库查询数据,并返回一个DataTable // 这里省略具体的数据库操作代码 // 假设查询结果的列名为XField和YField DataTable dataTable = new DataTable(); dataTable.Columns.Add("XField", typeof(string)); dataTable.Columns.Add("YField", typeof(int)); // 从数据库查询数据,并将其添加到DataTable // 这里省略具体的数据库查询和数据填充代码 return dataTable; } ``` 在以上代码,通过调用GetDataFromDatabase函数从数据库读取数据,并将其设置为Chart控件的数据源。然后,通过设置XValueMember和YValueMembers来指定X轴和Y轴的数据字段。最后,调用DataBind方法将数据绑定到Chart控件上。 当页面加载时,Chart控件会自动根据数据绘制相应的图表。你可以根据需要进一步设置Chart控件的样式、标题、图例等属性,以及添加更多的Series来展示更多的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zjx8613

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值