2014-04-24 49 views
0

ASPX和C#代码图表控制asp.net 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

@PatrickHofman是的 – user3441151

+0

如果我尝试使用有数据的表,它可以正常工作,但是如果我的数据表为空,它不会显示带有初始点(0,0)的图表。 – user3441151

回答

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值。

+0

thanx它工作很好。 – user3441151