0

Telerik ティッカーで使用したい 3 行の結果を得るために、かなり長い SQL ステートメントの組み合わせがあります。私が見る限り、Telerik Ticker は Linq または Entity データ ソースのみを受け入れます。

だから私はイベントDataSourceID = "LinqDataSource1"を持つティッカーを持っています。OnSelecting

私のコードビハインドは...

Protected Sub LinqDataSource1_Selecting(sender As Object, e As LinqDataSourceSelectEventArgs) Handles LinqDataSource1.Selecting 

Dim db As New TestDataContext 

Dim tickerquery As New StringBuilder 

tickerquery.Append("DECLARE @ALL_Total int ") 
tickerquery.Append("DECLARE @ABC_Total int ") 
tickerquery.Append("DECLARE @XYZ_Total int ") 
tickerquery.Append("DECLARE @ALL_TypeA int ") 
tickerquery.Append("DECLARE @ABC_TypeA int ") 
tickerquery.Append("DECLARE @XYZ_TypeA int ") 
tickerquery.Append("DECLARE @ALL_TypeB int ") 
tickerquery.Append("DECLARE @ABC_TypeB int ") 
tickerquery.Append("DECLARE @XYZ_TypeB int ") 
tickerquery.Append("DECLARE @ALL_TypeC int ") 
tickerquery.Append("DECLARE @ABC_TypeC int ") 
tickerquery.Append("DECLARE @XYZ_TypeC int ") 
tickerquery.Append("DECLARE @ALL_TypeD int ") 
tickerquery.Append("DECLARE @ABC_TypeD int ") 
tickerquery.Append("DECLARE @XYZ_TypeD int ") 
tickerquery.Append("DECLARE @ALL_TypeE int ") 
tickerquery.Append("DECLARE @ABC_TypeE int ") 
tickerquery.Append("DECLARE @XYZ_TypeE int ") 

tickerquery.Append("DECLARE @ALL_Title nvarchar(3) ") 
tickerquery.Append("DECLARE @ABC_Title nvarchar(3) ") 
tickerquery.Append("DECLARE @XYZ_Title nvarchar(3) ") 
tickerquery.Append("SET @ALL_Title = 'ALL' ") 
tickerquery.Append("SET @ABC_Title = 'ABC' ") 
tickerquery.Append("SET @XYZ_Title = 'XYZ' ") 
tickerquery.Append("DECLARE @Count_Tbl table (Title nvarchar(3), Total int, TypeA int, TypeB int, TypeC int, TypeD int, TypeE int) ") 

tickerquery.Append("SELECT @ALL_Total = (SELECT Count(ProdID) FROM Products) ") 
tickerquery.Append("SELECT @ABC_Total = (SELECT Count(ProdID) FROM Products WHERE Category = 'ABC') ") 
tickerquery.Append("SELECT @XYZ_Total = (SELECT Count(ProdID) FROM Products WHERE Category = 'XYZ') ") 
tickerquery.Append("SELECT @ALL_TypeA = (SELECT Count(ProdID) FROM Products WHERE Productstatus = 'TypeA') ") 
tickerquery.Append("SELECT @ABC_TypeA = (SELECT Count(ProdID) FROM Products WHERE Category = 'ABC' AND Productstatus = 'TypeA') ") 
tickerquery.Append("SELECT @XYZ_TypeA = (SELECT Count(ProdID) FROM Products WHERE Category = 'XYZ' AND Productstatus = 'TypeA') ") 
tickerquery.Append("SELECT @ALL_TypeB = (SELECT Count(ProdID) FROM Products WHERE Productstatus = 'TypeB') ") 
tickerquery.Append("SELECT @ABC_TypeB = (SELECT Count(ProdID) FROM Products WHERE Category = 'ABC' AND Productstatus = 'TypeB') ") 
tickerquery.Append("SELECT @XYZ_TypeB = (SELECT Count(ProdID) FROM Products WHERE Category = 'XYZ' AND Productstatus = 'TypeB') ") 
tickerquery.Append("SELECT @ALL_TypeC = (SELECT Count(ProdID) FROM Products WHERE Productstatus = 'TypeC') ") 
tickerquery.Append("SELECT @ABC_TypeC = (SELECT Count(ProdID) FROM Products WHERE Category = 'ABC' AND Productstatus = 'TypeC') ") 
tickerquery.Append("SELECT @XYZ_TypeC = (SELECT Count(ProdID) FROM Products WHERE Category = 'XYZ' AND Productstatus = 'TypeC') ") 
tickerquery.Append("SELECT @ALL_TypeD = (SELECT Count(ProdID) FROM Products WHERE Productstatus = 'TypeD') ") 
tickerquery.Append("SELECT @ABC_TypeD = (SELECT Count(ProdID) FROM Products WHERE Category = 'ABC' AND Productstatus = 'TypeD') ") 
tickerquery.Append("SELECT @XYZ_TypeD = (SELECT Count(ProdID) FROM Products WHERE Category = 'XYZ' AND Productstatus = 'TypeD') ") 
tickerquery.Append("SELECT @ALL_TypeE = (SELECT Count(ProdID) FROM Products WHERE Productstatus <> 'TypeD') ") 
tickerquery.Append("SELECT @ABC_TypeE = (SELECT Count(ProdID) FROM Products WHERE Category = 'ABC' AND Productstatus = 'TypeE') ") 
tickerquery.Append("SELECT @XYZ_TypeE = (SELECT Count(ProdID) FROM Products WHERE Category = 'XYZ' AND Productstatus = 'TypeE') ") 

tickerquery.Append("INSERT INTO @Count_Tbl (Title, Total, TypeA, TypeB, TypeC, TypeD, TypeE SELECT @ALL_Title, @ALL_Total, @ALL_TypeA, @ALL_TypeB, @ALL_TypeC, @ALL_Decomm, @ALL_Running ") 

tickerquery.Append("INSERT INTO @Count_Tbl (Title, Total, TypeA, TypeB, TypeC, TypeD, TypeE SELECT @ABC_Title, @ABC_Total, @ABC_TypeA, @ABC_TypeB, @ABC_TypeC, @ABC_Decomm, @ABC_Running ") 

tickerquery.Append("INSERT INTO @Count_Tbl (Title, Total, TypeA, TypeB, TypeC, TypeD, TypeE SELECT @XYZ_Title, @XYZ_Total, @XYZ_TypeA, @XYZ_TypeB, @XYZ_TypeC, @XYZ_Decomm, @XYZ_Running ") 

tickerquery.Append("SELECT Title, Total, TypeA, TypeB, TypeC, TypeD, TypeE FROM @Count_Tbl") 

Dim results As IEnumerable(Of ProductCount) = _ 
    db.ExecuteQuery(Of ProductCount) _ 
    (tickerquery.ToString) 

e.Result = results 
End Sub

私が得るエラーは

Incorrect syntax near the keyword 'SELECT'.
Incorrect syntax near the keyword 'SELECT'.
Incorrect syntax near the keyword 'SELECT'. at the tickerquery.ToString line

ティッカーにバインドできるように結果を取得する別の方法はありますか?

4

1 に答える 1

0

修正済み...文字列ビルダーへの一連の追加への変換で、3 つの挿入ステートメントでいくつかの閉じ括弧を削除しました。

私が持っていた

tickerquery.Append("INSERT INTO @Count_Tbl (Title, Total, TypeA, TypeB, TypeC, TypeD, TypeE SELECT @ABC_Title, @ABC_Total, @ABC_TypeA, @ABC_TypeB, @ABC_TypeC, @ABC_Decomm, @ABC_Running ")

そして、私は持っていたはずです

tickerquery.Append("INSERT INTO @Count_Tbl (Title, Total, TypeA, TypeB, TypeC, TypeD, TypeE) SELECT @ABC_Title, @ABC_Total, @ABC_TypeA, @ABC_TypeB, @ABC_TypeC, @ABC_Decomm, @ABC_Running ")

于 2013-07-25T13:10:19.237 に答える