none
关于Chart控件的使用. RRS feed

  • 问题

  • 使用Chart控件动态绑定数据出现一个问题:我将连接数据库的代码与控件赋值的代码写在同一个方法中,可以实现数据的绑定输出;

    源代码示例一:

    前台代码:

     <p>

            柱状图</p>

        <div>

            <asp:Chart ID="Chart1" runat="server">

                <Series>

                    <asp:Series Name="Series1">

                    </asp:Series>

                </Series>

                <ChartAreas>

                    <asp:ChartArea Name="ChartArea1">

                    </asp:ChartArea>

                </ChartAreas>

            </asp:Chart>

        </div>

        <br />

    后台代码:

     protected void Page_Load(object sender, EventArgs e)

            {

                if (!IsPostBack)

                {

                    //柱状图

                    Chart1Query();

                }

            }

     public void Chart1Query()

            {

                using (SqlConnection con = new SqlConnection("server=LIJUNYU-PC\\SQL2005;uid=sa;pwd=sasa;database=testDB"))

                {

                    string sql = "select months,orders from table_1";

                    SqlCommand cmd = new SqlCommand(sql, con);

                    con.Open();

                    using (SqlDataReader dr = cmd.ExecuteReader())

                    {

                        Chart1.Series["Series1"].Points.DataBindXY(dr, "months", dr, "orders");

                    }

                }

            }

    源码示例二:

    前台代码:与上相同;

    后台代码:首先是我们的DBHelper类

    public class DBhelper

        {

            DBhelper() { }

            static readonly DBhelper db = new DBhelper();

            public static DBhelper GetDB 

            {

                get 

                {

                    return db;

                }

            }

     

            public static SqlDataReader ExcuteReaderQuery(string sql) 

            {

                using(SqlConnection conn=new SqlConnection("server=LIJUNYU-PC\\SQL2005;uid=sa;pwd=sasa;database=testDB"))

                {

                    SqlCommand cmd = new SqlCommand(sql, conn);

                    try

                    {

                        conn.Open();

                        SqlDataReader dr = cmd.ExecuteReader();

                        return dr;

                    }

                    catch (Exception ex)

                    {

                        throw new ApplicationException("发生异常!", ex);

                    }

                }

            }

        }

    再者业务层的逻辑处理类:

     public class DefaultBLL

        {

            public static SqlDataReader Chart1Query()

            {

                string sql = "select months,orders from table_1";

                return DBhelper.ExcuteReaderQuery(sql);

            }

        }

    页面cs类文件中的代码:

     protected void Page_Load(object sender, EventArgs e)

            {

                if (!IsPostBack)

                {

                    //柱状图

                    Chart1Query();

                }

            }

    pulibc void Chart1Query()

    {

    DefaultBLL.Chart1Query(); Chart1.Series["Series1"].Points.DataBindXY(dr, "months", dr, "orders");

    }

    源代码示例一可用,但是代码不规范。

    源代码示例二部可用,报错是读取器失败!导致绑定数据失败.

    • 已移动 doukooo 2011年11月10日 6:42 Asp.net (发件人:微软学生讨论专区)
    2011年10月28日 2:49