nitinkumar06 Ответов: 3

отображение данных sql server datatable в форме диаграммы с помощью asp.net highchart from code behind (файл.cs )


у меня есть одна таблица данных в базе данных sql server, и я хочу показать данные этой таблицы с помощью asp.net высокий график из кода за файлом . как я могу показать данные таблицы данных sql server в виде диаграмм?

3 Ответов

Рейтинг:
1

hypermellow

Привет,

Взгляните на следующую статью:

Highcharts in asp.net использование jquery ajax[^].

Он дает подробное объяснение того, как его использовать ASP.NET чтобы показать данные SQL Server в высоких диаграммах.

..- надеюсь, это поможет.


Рейтинг:
1

Member 7673567

static string conString = ConfigurationManager.ConnectionStrings["Connections"].ConnectionString;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                List<PieSeriesData> PieDataList = new List<PieSeriesData>();
                DataTable dt = piedatatable;

                if (dt != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        Double count = Convert.ToDouble(dr[CountColumn]);
                        String Name = Convert.ToString(dr[NameColumn]);
                        PieDataList.Add(new PieSeriesData { Name = Name, Y = count });
                    }


                    Highcharts higcharts = new Highcharts
                    {
                        Chart = new Chart
                        {
                            Type = ChartType.Pie,
                            Height = 350,
                            Options3d = new ChartOptions3d
                            {
                                Enabled = true,
                                Alpha = 25,
                                Beta = 0
                            }
                        },


                        Credits = { Enabled = false },
                        PlotOptions = new PlotOptions
                        {
                            Pie = new PlotOptionsPie
                            {
                                AllowPointSelect = true,
                                SlicedOffset = 20,
                                Cursor = PlotOptionsPieCursor.Pointer,
                                Depth = 45,
                                DataLabels = new PlotOptionsPieDataLabels
                                {
                                    Enabled = true,
                                    Format = "{point.name}<br/>{point.count}"
                                },
                                ShowInLegend = false


                            }

                        }

                        ,
                        Title = new Title
                        {
                            Text = pietittle,
                            X = -20
                        },
                        Legend = new Legend
                        {
                            Layout = LegendLayout.Horizontal,
                            Align = LegendAlign.Center,

                            BorderWidth = 0
                        },
                        Navigation = {
                        ButtonOptions=
                        {
                            Enabled= false
                        }
                    },
                        Series = new List<Series>
                {
                    new PieSeries
                    {
                        Name = pieseriesname,
                        Data = PieDataList as List<PieSeriesData>,
                      Size="80%"
                    }
                }
                    };
                    HighsoftNamespace Highsoft = new HighsoftNamespace();
                    string result = Highsoft.GetHighcharts(higcharts, "chart").ToHtmlString();
                    //Pichartseries.Text = result;
                    Response.Write(result);
                }
            }
        }
        public DataTable piedatatable { get; set; }
        public String pietittle { get; set; }
        public String pieseriesname { get; set; }
        public bool showinlegend { get; set; }
        public String CountColumn { get; set; }
        public String NameColumn { get; set; }
    }


Вот как вы можете связать pichart из кода позади in asp.net highchart


Рейтинг:
0

Member 7673567

static string conStr = ConfigurationManager.ConnectionStrings["Connections"].ConnectionString;
        static string TokenID = string.Empty;
        AuthenticateToken oauth = new AuthenticateToken();
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    Crypto crypto = new Crypto();
                    string requestUrl = Request.Url.ToString();
                    string[] token = Regex.Split(requestUrl, "tokenId=");
                    if (!string.IsNullOrEmpty(token[1]))
                    {
                        TokenID = crypto.DecryptFromString(token[1]);
                        String SiteCode = GetComaSeperaredSiteCode(new Guid(TokenID));
                        DataTable dt = new DataTable();
                        dt = GetAssetTotal(SiteCode);
                        GridViewReports.DataSource = dt;
                        GridViewReports.DataBind();
                        Pichartcontrol.piedatatable = dt;
                        Pichartcontrol.pieseriesname = "MEP Total";
                        Pichartcontrol.pietittle = "Asset Total";
                        Pichartcontrol.NameColumn = "SiteCode";
                        Pichartcontrol.CountColumn = "TotalAssetCount";
                    }
                }
            }
            catch
            {
                Response.Redirect("~/Reports/Oops.aspx");
            }
        }
        #region Get Coma Seperated Site Code
        protected string GetComaSeperaredSiteCode(Guid TokenID)
        {
            string SiteCodes = string.Empty;
            try
            {
                if (oauth.ValidateTokenId(TokenID.ToString()))
                {
                    using (SqlConnection con = new SqlConnection(conStr))
                    {
                        using (SqlCommand cmd = new SqlCommand())
                        {
                            cmd.Connection = con;
                            if (con.State == ConnectionState.Closed)
                            {
                                con.Open();
                            }
                            cmd.CommandText = "[Intelligios].[UspGetSiteCodes]";
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.AddWithValue("@TokenID", TokenID);
                            SqlDataAdapter da = new SqlDataAdapter(cmd);
                            DataTable dt = new DataTable();
                            da.Fill(dt);
                            if (dt.Rows.Count > 0)
                            {
                                SiteCodes = String.Join(",", dt.AsEnumerable().Select(x => x.Field<string>("SiteCode").ToString()).ToArray());
                            }
                        }
                    }
                }
                else
                {
                    Response.Redirect("~/Reports/Invalid.aspx", false);
                }
            }
            catch
            {
                Response.Redirect("~/Reports/Oops.aspx");
            }
            return SiteCodes;
        }
        #endregion
        #region Get Total Asset Count
        protected DataTable GetAssetTotal(string SiteCodes)
        {
            DataTable dt = new DataTable();
            try
            {
                if (oauth.ValidateTokenId(TokenID.ToString()))
                {
                    using (SqlConnection con = new SqlConnection(conStr))
                    {
                        using (SqlCommand cmd = new SqlCommand())
                        {
                            cmd.Connection = con;
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.CommandText = "[Intelligios].[UspGetAssetTotal]";
                            cmd.Parameters.AddWithValue("@IsBME", 0);
                            cmd.Parameters.AddWithValue("@GroupCode", SiteCodes);
                            SqlDataAdapter da = new SqlDataAdapter(cmd);
                            da.Fill(dt);
                        }
                    }
                }
                else
                {
                    Response.Redirect("~/Reports/Invalid.aspx", false);
                }
            }
            catch
            {
                Response.Redirect("~/Reports/Oops.aspx");
            }
            return dt;
        }
        #endregion
    }


и вам нужно заполнить datatable с помощью этого кода