我使用的是VS2010,想做一个用MSChart控件连接SQLSERVER数据库(有三个数据表)的数据显示统计图,并使用Ajax ContorlKit控件使四个下拉列表框形成级联,一个列表框是提供数据库里面的表选择,第二三个列表框分别是MSChart里设定X轴的值、Y轴的值(XY轴的值都是数据库中某个表里面的字段),第四个列表框是提供MsChar表的类型选择(如折线图、饼图、曲线图、齿状图),然后点击一下按钮,下面MsChart控件就呈现不同的数据图表类型。
    不知道我的想法能否实现,本人只是个.NET的初学者,希望各位高手指点迷津,高手能给点思路和附加点代码示例,就最好了。本人不胜感激!

解决方案 »

  1.   

    前台四个DropDownList和一个Button,前三个绑定数据库,后一个静态设置,如下:
            <asp:DropDownList ID="DropDownList1" runat="server">
            </asp:DropDownList>
            <asp:DropDownList ID="DropDownList2" runat="server">
            </asp:DropDownList>
            <asp:DropDownList ID="DropDownList3" runat="server">
            </asp:DropDownList>
            <asp:DropDownList ID="DropDownList4" runat="server">
                <asp:ListItem Value="Line">折线</asp:ListItem>
                <asp:ListItem Value="Pie">饼图</asp:ListItem>
            </asp:DropDownList>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    Button1的click事件下代码如下:
        protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection myConn = new SqlConnection("Data Source=.;Initial Catalog=XXXX;User ID=sa;Password= ");
            
            string sql = "select * from " + DropDownList1.SelectedValue.ToString();
            SqlDataAdapter myAdapter = new SqlDataAdapter(sql, myConn);
            DataSet ds = new DataSet();
            myAdapter.Fill(ds);
            Chart1.Series[0].XValueMember = DropDownList2.SelectedValue.ToString();
            Chart1.Series[0].YValueMembers = DropDownList3.SelectedValue.ToString();
            Chart1.DataSource = ds;
            Chart1.DataBind();        //设置Chart图型
            if (DropDownList4.SelectedIndex == 0)
                Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line;
            else if (DropDownList4.SelectedIndex == 1)
                Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
        }
      

  2.   

    <asp:ScriptManager ID="ScriptManager1" runat="server">
      </asp:ScriptManager>
      <div>
      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
      <asp:DropDownList ID="DropDownList1" runat="server" Width="15%" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
      </asp:DropDownList>
      <asp:DropDownList ID="DropDownList2" runat="server" Width="20%">
      </asp:DropDownList>
      </ContentTemplate>
      </asp:UpdatePanel>
      </div> string strSql = "";
        DataSet ds = DBHelper.ExecuteDataSet(strSql);
        Chart1.ChartAreas["ChartArea1"].AxisY.Title = "";
        Chart1.ChartAreas["ChartArea1"].AxisX.Title = "";
        Chart1.DataSource = ds;
        Chart1.DataBindCrossTable(ds.Tables[0].DefaultView, "", "", "", "");
        Chart1.Legends.Add("legends");
    设置Chart1.Series[0].ChartType