2010-11-17 7 views
15

¿Por qué recibo este error con el código de abajo ParseException: End of string expected at position 4.Sitecore de consulta rápida da Analizar Excepción

Aquí está el código: El error está en la tercera línea.

var db = Sitecore.Configuration.Factory.GetDatabase("web"); 
string query = @"fast:/sitecore/content/foodservice/home/Products/3492-5326/3518-7"; 
Item item = db.SelectSingleItem(query); 
return item; 

¿Se puede utilizar una consulta rápida con SelectSingleItem()? Estaba tratando de evitar las sugerencias get folder contents and loop through each item until I find the target solution.?

+0

pregunta relacionada: http://stackoverflow.com/questions/3687405/escaping-reserved-words –

+0

¿Alguien sabe cómo escapar de los caracteres especiales utilizados en los campos de texto, como un apóstrofo en la descripción de un elemento de contenido? http://stackoverflow.com/questions/16847831/sitecore-fast-query-how-to-search-for-text-containing-special-characters-such – longda

Respuesta

7

trata de un error al utilizar la consulta rápida y SelectSingleItem(). El problema se corrigió en la versión de Sitecore CMS 6.3.0 rev.100716. Ver Release Notes. Como utilizamos 6.2, tuve que volver a escribir mi método para usar una consulta de Sitecore en lugar de Fast Query.

+1

Parece que esto es ahora un problema en 6.5.0 (rev. 121009) pero para la consulta de Sitecore (pero en la posición 5). Alegría. – longda

+0

Esto también es un problema en Sitecore 6.6, por lo que si se solucionó el error, se volvió a introducir. – dadwithkids

+1

¡Acabo de encontrar esto en la actualización 8.1! –

15

Al usar Sitecore Query, necesita escaparse de los nombres de los elementos con guiones. De SDN:

Items with dashes in names (“-”) should be included in “#” symbols. Please use such syntax: /sitecore/content/Home/#About-us#. Otherwise you may get the following error: Invalid lookup source "/sitecore/content/TestSiteB/Home/About-us": End of string expected at position 38. Also, an item name should be included in “#” symbols if it contains “and” or “or” word and is used before “//” symbols. For example: "/sitecore/content/Home/#news and events#//".

ACTUALIZACIÓN: He confirmado que se aplica a la consulta rápida también.

End of string expected at position 27. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: Sitecore.Data.Query.ParseException: End of string expected at position 27. 

Source Error: 


Line 21:   protected void Page_Load(object sender, EventArgs e) 
Line 22:   { 
Line 23:    Sitecore.Context.Database.SelectSingleItem("fast:/sitecore/Content/Home/Test-Item"); 
Line 24: 
Line 25:    Model = Sitecore.Context.Item; 

El mismo código funciona muy bien con # # escapa:

Sitecore.Context.Database.SelectSingleItem("fast:/sitecore/Content/Home/#Test-Item#"); 
+0

Estoy usando Sitecore Fast Query, no Sitecore Query. Los guiones no son el problema. –

+0

¿Estás seguro? ¿Has intentado escapar de ellos? Mi instinto sería que Fast Query utilizaría la misma lógica de análisis, por lo que los guiones son un requisito. – techphoria414

+0

Ver mi actualización, bastante cierto que los guiones son el problema. – techphoria414

Cuestiones relacionadas