【问题标题】:chart control asp.net c#图表控件asp.net c#
【发布时间】:2014-04-24 15:06:03
【问题描述】:

ASPX 和 C# 代码

    <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
        <asp:Chart ID="Chart1" runat="server">
            <Series>
                <asp:Series Name="Series1" XValueMember="status" YValueMembers="Total">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>
    </asp:Content>


protected void Page_Load(object sender, EventArgs e)
        {

            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ToString());

            SqlCommand com = new SqlCommand("select status , Total from ch where id = @id", con);

            com.Parameters.AddWithValue("@id", Session["id"]);

            DataTable dt = new DataTable();

            con.Open();

            SqlDataAdapter sqlDa = new SqlDataAdapter(com);

            sqlDa.Fill(dt);

            if (dt.Rows.Count > 0)
            {
                Chart1.DataSource = dt;
                Chart1.DataBind();
            }
            else
            {

            }
            con.Close();
        }

我正在使用图表类型“列”。

我希望如果数据库中没有数据,图表在其初始点 (0,0) 处可见。这可能吗……???

我使用的是 sql server 2008,visual studio 2010 asp.net c#。

【问题讨论】:

  • 不要在标题中使用标签!!!
  • 如果我尝试使用有数据的表,它工作正常,但如果我的数据表为空,它不会显示初始点 (0,0) 的图表。
  • 那么手动将该点添加到DataTable dt ?
  • @YuriyGalanter 怎么做,如果你知道请写代码。
  • @user3441151 在下面看到我的回答。

标签: c# asp.net


【解决方案1】:

你需要在你的数据表中有一个手动点。这是dataadapter填充数据表后修改后的代码块:

SqlDataAdapter sqlDa = new SqlDataAdapter(com);
sqlDa.Fill(dt);

if (dt.Rows.Count == 0)
{
   DataRow rw = dt.NewRow();
   rw["status"] = "";
   rw["Total"] = 0;
   dt.Rows.Add(rw);

}

Chart1.DataSource = dt;
Chart1.DataBind();

con.Close();

它检查数据表是否有行,如果没有 - 加一,值为 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多