2017-03-01 66 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