1
我嘗試通過以下VB代碼來填充Repeater控件的數據源:SPARQL BIND子句導致上轉發數據源例外
Dim queryString As SparqlParameterizedString = New SparqlParameterizedString()
For Each nsPrefix In UrlManager.namespaces.Keys
queryString.Namespaces.AddNamespace(nsPrefix, New Uri(UrlManager.namespaces(nsPrefix)))
Next
queryString.CommandText = commandText
Dim parser As New SparqlQueryParser()
Dim query = parser.ParseFromString(queryString)
Dim r As SparqlResultSet = g.ExecuteQuery(query)
If r.Count > 0 Then
datasource = r
Else
datasource = Nothing
End If
其中變量g
是我的工作圖
我有相同的查詢
工作SELECT DISTINCT ?context ?label {
?s a my:Client .
?s rdfs:label ?label .
BIND (IF(EXISTS {?s rdf:type my:Subscriber}, 1, 0) AS ?priority)
} ORDER BY DESC(?priority) ASC(?label)
每當我在簡單的aspx頁面中嘗試這個vb代碼,它可以正常工作,但如果在中繼器上失敗OnLoad
事件機智h a VDS.RDF.Query.RdfQueryException: Cannot add a Set to the Null Multiset
看起來這個錯誤是由BIND (IF(EXISTS {?s rdf:type my:Subscriber}, 1, 0) AS ?priority)
子句引起的:如果我刪除它,我的轉發器將按預期運行!
任何想法爲什麼會發生異常,以及如何糾正它?
我一定有點累:我沒有檢查我已經刪除了過濾器(unbound(?priority))..:P什麼似乎很奇怪是在我的aspx中,異常從未被提出,但組件總是失敗。我會檢查新建立的儘快。謝謝。 – Max 2013-04-23 06:03:09
嗨,羅布,我測試了新的構建,一切都如預期(綁定和訂單),非常感謝您的反應。乾杯 – Max 2013-04-24 09:18:23