2017-03-01 124 views
1

以时间显示图表我使用组合框中的项目作为过滤器从sql查询来显示总销售图表(日,周,月,年) 。净。请帮忙。我的代码在下面,它会引发错误,说'找不到表0'。使用组合框作为过滤器在vb.net中使用sql

cboxGroupBy.Items.Insert(0, "Day") 
    cboxGroupBy.Items.Insert(1, "Week") 
    cboxGroupBy.Items.Insert(2, "Month") 
    cboxGroupBy.Items.Insert(3, "Year") 

    SQL.ExecQuery("SELECT Date = DATEPART('" + Me.cboxGroupBy.Text + "', Date),                
       SUM (Amount) AS Amount 
       FROM Sales        
       GROUP BY DATEPART('" + Me.cboxGroupBy.Text + "', Date)") 

     Chart2.DataSource = SQL.SQLDS.Tables(0) 
     Chart2.Series.Clear() 
     Chart2.Series.Add("Total Revenue") 
     Chart2.Series("Total Revenue").XValueMember = "Date" 
     Chart2.Series("Total Revenue").YValueMembers = "Amount"     

回答

0

DatePart()功能删除单引号。无需在单引号中传递Day或Week等。这是你修改后的查询。

SQL.ExecQuery("SELECT Date = DATEPART(" + Me.cboxGroupBy.Text + ", Date),                
       SUM (Amount) AS Amount 
       FROM Sales        
       GROUP BY DATEPART(" + Me.cboxGroupBy.Text + ", Date)") 
+0

我删除了单引号但仍无法使用。谢谢。 – Sonam

+0

我得到相同的错误“无法找到表0”。谢谢。 – Sonam

+0

@ Krishnraj我明白了。它现在有效。非常感谢。按照你的建议,这是单引号。 – Sonam

0

它看起来就像你正在试图获得当前的日期,所以在初始query.If使用GETDATE()(如果你的数据库是SQL Server)的它是别的东西,看看如何获​​得当前日期。

这样:

SQL.ExecQuery("SELECT Date = DATEPART('" + Me.cboxGroupBy.Text + "', GETDATE()),                
       SUM (Amount) AS Amount 
       FROM Sales        
       GROUP BY DATEPART('" + Me.cboxGroupBy.Text + "', GETDATE())") 
+0

谢谢你的帮助。我改变了你的建议,但它仍然没有工作。有任何进一步的建议?谢谢。 – Sonam

+0

你在用什么数据库? – Rendition

+0

我正在使用sql server。谢谢。 – Sonam