Asp.net mvc 将字符串传递给DocumentHelper.GetDocuments()时发生异常,其中()
我试图获得如下节点:Asp.net mvc 将字符串传递给DocumentHelper.GetDocuments()时发生异常,其中(),asp.net-mvc,kentico,Asp.net Mvc,Kentico,我试图获得如下节点: DocumentHelper.GetDocuments() .Where("NodeParentID == 25 && NodeLevel == 2") .Where("NodeParentID", QueryOperator.Equals, 25) .Where("NodeLevel ", QueryOperator.Equals, 7); 但有一个例外: “=”附近的语法不正确。在 System.Data.SqlClient
DocumentHelper.GetDocuments()
.Where("NodeParentID == 25 && NodeLevel == 2")
.Where("NodeParentID", QueryOperator.Equals, 25)
.Where("NodeLevel ", QueryOperator.Equals, 7);
但有一个例外:
“=”附近的语法不正确。在
System.Data.SqlClient.SqlConnection.OnError(SqlException异常,
布尔断开连接,操作1 wrapCloseInAction)位于
System.Data.SqlClient.TdsParser.ThroweException和Warning(TdsParserStateObject
stateObj、布尔调用方连接锁、布尔异步关闭)位于
System.Data.SqlClient.TdsParser.TryRun(运行行为,
SqlCommand cmdHandler、SqlDataReader数据流、,
BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject
stateObj、Boolean和dataReady)位于
System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()位于
System.Data.SqlClient.SqlDataReader.get_MetaData()位于
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,
运行行为运行行为,字符串重置选项字符串,布尔值
isInternal,用于描述参数加密的布尔值,布尔值
应该缓存(始终加密)在
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior、RunBehavior、Boolean returnStream、Boolean
异步、Int32超时、任务和任务、布尔异步写入、布尔inRetry、,
SqlDataReader ds,布尔描述参数加密请求)位于
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior、RunBehavior、布尔返回流、字符串
方法,TaskCompletionSource
1完成,Int32超时,任务和任务,
Boolean&在
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior、RunBehavior、布尔返回流、字符串
方法)在
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
行为,字符串方法)在
System.Data.Common.DbDataAdapter.FillInternal(数据集,
DataTable[]datatables,Int32 startRecord,Int32 maxRecords,字符串
srcTable、IDbCommand、CommandBehavior)位于
System.Data.Common.DbDataAdapter.Fill(DataSet数据集,Int32
startRecord、Int32 maxRecords、字符串srcTable、IDbCommand、,
命令(行为)在
System.Data.Common.DbDataAdapter.Fill(数据集)位于
CMS.DataEngine.AbstractDataConnection.ExecuteQuery(字符串queryText,
QueryDataParameters queryParams,QueryTypeEnum queryType,布尔值
requiresTransaction)--内部异常堆栈跟踪的结束----在CMS.DataEngine.AbstractDataConnection.HandleError(字符串queryText, 例外情况(ex)在 CMS.DataEngine.AbstractDataConnection.ExecuteQuery(字符串queryText, QueryDataParameters queryParams,QueryTypeEnum queryType,布尔值 要求(再交易)在 CMS.DataEngine.GeneralConnection.RunQuery(QueryParameters查询)位于 CMS.DataEngine.GeneralConnection.RunQueryWithRetry(查询参数 查询,Int32 retryCount)位于 CMS.DataEngine.GeneralConnection.ExecuteQuery(查询参数查询, Int32和totalRecords)在 CMS.DataEngine.DataQueryBase
1.GetDataFromDBInternal()位于
CMS.DataEngine.DataQueryBase
1.GetDataFromDB()位于
CMS.DataEngine.DataQueryBase1.GetData()位于
CMS.DataEngine.DataQueryBase
1.get_Result()位于
CMS.DataEngine.DataQueryBase1.GetResults(IDataQuery查询,Int32&
totalRecords)在CMS.DataEngine.DataQueryBase上
在
CMS.DocumentEngine.DocumentQueryProperties.GetDataInternal(IDocumentQuery
查询,Func1 baseGetDataMethod,操作
1 setTotalRecords)位于
CMS.DataEngine.DataQueryBase1.GetData()位于
CMS.DataEngine.DataQueryBase
1.get_Result()位于
CMS.DataEngine.MultiObjectQueryBase3.EnsureTypedResult()位于
CMS.DataEngine.MultiObjectQueryBase
3.GetEnumerator()位于
System.Collections.Generic.List1..ctor(IEnumerable
1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
我做错了什么?==是一种c#语法,SQL只使用一个=
您应该在以下情况下执行以下操作:
DocumentHelper.GetDocuments()
.Where("NodeParentID == 25 && NodeLevel == 2")
.Where("NodeParentID", QueryOperator.Equals, 25)
.Where("NodeLevel ", QueryOperator.Equals, 7);
==是一种c#语法,SQL只使用一个=
您应该在以下情况下执行以下操作:
DocumentHelper.GetDocuments()
.Where("NodeParentID == 25 && NodeLevel == 2")
.Where("NodeParentID", QueryOperator.Equals, 25)
.Where("NodeLevel ", QueryOperator.Equals, 7);
“WHERE”子句中的SQL语法不正确。您试图在需要使用T-SQL的地方使用C#语法
不正确:
DocumentHelper.GetDocuments().Where("NodeParentID == 25 && NodeLevel == 2");
正确:
DocumentHelper.GetDocuments().Where("NodeParentID = 25 AND NodeLevel = 2");
“WHERE”子句中的SQL语法不正确。您试图在需要使用T-SQL的地方使用C#语法
不正确:
DocumentHelper.GetDocuments().Where("NodeParentID == 25 && NodeLevel == 2");
正确:
DocumentHelper.GetDocuments().Where("NodeParentID = 25 AND NodeLevel = 2");
检查正在执行的SQL查询。我不太熟悉Kentico或您使用的版本,但请尝试。Where(“NodeParentID”,QueryOperator.Equals,“25”)
。看起来还有一个。WhereEquals(“,”)
语法。请检查正在执行的SQL查询。我不太熟悉Kentico或您使用的版本,但请尝试。Where(“NodeParentID”,QueryOperator.Equals,“25”)
。看起来还有一个.WhereEquals(“,”)
语法。您的代码很接近,您缺少了.And()。其中(“NodeParentID”,QueryOperator.Equals,25)和(),其中(“NodeLevel”,QueryOperator.Equals,7)@BrendenKehren我有了它并编辑了我的评论,如果你有多个where条件,比如Kentico会自动添加和。你的代码很接近,你缺少了。and()。其中(“NodeParentID”,QueryOperator.Equals,25)和(),其中(“NodeLevel”,QueryOperator.Equals,7)@BrendenKehren我有这个想法并编辑了我的评论,如果你有多个像Kentico会自动添加和删除的条件。