【问题标题】:How To Bind Two Chart Series To One SqlDataSource Object In ASP.NET?如何在 ASP.NET 中将两个图表系列绑定到一个 SqlDataSource 对象?
【发布时间】:2016-03-02 00:34:56
【问题描述】:

我正在尝试在 Asp.Net 中使用来自两个表(收入和支出)的数据创建一个折线图。每个表都有一个日期和一个成本(Inc Cost、IncDate、ExpCost 和 ExpDate)。我可以为收入或支出中的任何一个创建折线图,但不能同时为两者创建。我尝试创建一个系列,但我无法同时选择 IncCost 和 ExpCost(我将在下面显示) 这是我的 SQL 代码

SELECT IncDate, SUM(IncCost),ExpDate, SUM(ExpCost) FROM Incomings, Expenditures GROUP BY IncDate, ExpDate 

这就是我要为数据成员选择的内容。

目的是使 X 值具有 IncDate 和 ExpDate(它们以 dd/mm/yyyy 格式存储)和 Y 值具有两条不同的行,一条用于 IncCost,一条用于 ExpCost。

希望有人能看到问题所在。提前致谢!

【问题讨论】:

  • 如果您指的是更改一个 Series 的 X 和 Y 成员也会更改另一个,解决方法是从设计视图切换到代码视图(标记)并手动为每个 Series 编辑所需的数据成员。
  • 好的,谢谢

标签: c# sql asp.net charts


【解决方案1】:

当使用SqlDataSource 配置的GUI 时,VS 将同时更改Series 的X 成员和Y 成员,这似乎是一个小故障。

一种解决方法是直接编辑标记:

    <asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1" Height="400px" Width="600px">
        <Series>
            <asp:Series ChartArea="ChartArea1" Name="IncCost" ChartType="FastLine" XValueMember="IncDate" YValueMembers="IncCost" Legend="Legend1"></asp:Series>
            <asp:Series ChartArea="ChartArea1" Name="ExpCost" ChartType="FastLine" XValueMember="ExpDate" YValueMembers="ExpCost" Legend="Legend1"></asp:Series>
        </Series>
    </asp:Chart>

【讨论】:

  • Jstreet,对于您的行,您是否使用了来自两个不同表的数据?我的现在正在绘制,但底部的日期随机显示,有些日期错过/显示了很多次。我猜我可能需要从我的 sql 中的两个表中加入两个日期,但不知道我会怎么做
  • @Stuart 不,我使用了一张表中的数据。只要您正确地从数据库中检索您期望的数据,它就不会影响它的显示方式。此时,您是否使用连接都没有关系。尝试在 SSMS 上执行相同的查询,这样您就知道应该在图表上看到哪些数据。
  • 好的,我会试一试。谢谢
猜你喜欢
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多