c# - ASP.NET MVC 视图模型 SQL 查询语法
问题描述
我正在尝试将基本模型转换为模型视图和 SQL 查询。那么我的查询或其他文件有什么问题?
// GET: Cars
public ActionResult Index()
{
List<CarsTrxViewModel> model = db.Database.SqlQuery<CarsTrxViewModel>(SqlCars.CarsTrxByID()).ToList();
return View(model);
// return View(db.Cars.ToList());
}
查看型号:
public class CarsTrxViewModel
{
public int CarID { get; set; }
public string CarBrand { get; set; }
public string CarModel { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:mm:ss}")]
public DateTime CreateDate { get; set; }
}
询问:
public static class SqlCars
{
public static string CarsTrxByID()
{
return "select " + " * , " +
"cars.CarID as CarID " +
",cars.CarBrand as CarBrand " +
",cars.CarModel as CarModel " +
",cars.CreateDate as CreateDate " +
"from (SELECT * from [NagisOfflineDB].[dbo].[cars] )";
}
public static string GetCardholderByID()
{
return "SELECT TOP 1 * from [NagisOfflineDB].[dbo].[cars]";
}
}
模型:
public class Cars
{
[Key]
public int CarID { get; set; }
[StringLength(50)]
[Required]
public string CarBrand { get; set; }
[StringLength(250)]
[Required]
public string CarModel { get; set; }
public DateTime CreateDate { get; set; }
}
我不是加入或其他操作我只是在一个表中选择一列并设置别名行所以我的查询有什么问题?
编译器说你的查询错误它的错误 System.Data.SqlClient.SqlException: 'Incorrect syntax near ')'。
完整版的错误
“/”应用程序中的服务器错误。
')' 附近的语法不正确。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:')' 附近的语法不正确。
源错误:
第 20 行:
第 21 行:
第 22 行:列表模型 = db.Database.SqlQuery(SqlCars.CarsTrxByID()).ToList();
和堆栈跟踪
[SqlException (0x80131904): ')' 附近的语法不正确。]
System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection, Action 1 wrapCloseInAction) +59524921 wrapCloseInAction) +2552942
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +285 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) + 4169 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +58 System.Data.SqlClient.SqlDataReader.get_MetaData() +89 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) +430 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream,布尔异步,Int32 超时,Task& 任务,布尔异步写入,布尔 inRetry,SqlDataReader ds,布尔 describeParameterEncryptionRequest) +2598 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔 returnStream,String 方法,TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) +1483 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +64 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +240 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +41 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) +12 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext
1 c) +14 System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch(TTarget target, Func
3 操作,TInterceptionContext 拦截上下文,3 executing, Action
执行的动作 3) +72 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext) +402 System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior 行为)+166 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior 行为)+12 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternal(String commandText,String entitySetName, ExecutionOptions executionOptions, Object[] 参数)+266 System.Data.Entity.Core.Objects.<>c__DisplayClass691.<ExecuteStoreQueryReliably>b__68() +44 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction(Func
1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) +288 System.Data.Entity.Core.Objects.<>c__DisplayClass691.<ExecuteStoreQueryReliably>b__67() +167 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func
1 次操作) +190 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably(String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] 参数) +462 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery(String commandText, ExecutionOptions executionOptions, Object[] 参数) +60 System.Data.Entity.Internal.<>c__DisplayClass141.<ExecuteSqlQuery>b__13() +130 System.Data.Entity.Internal.LazyEnumerator
1.MoveNext() +45 System.Collections.Generic.List1..ctor(IEnumerable
1 个集合) +387 System.Linq.Enumerable.ToList(IEnumerable1 source) +58 NgsOfflineDev.Controllers.CarsController.Index() in C:\Dev\NagisDevOffline\NgsOfflineDev\NgsOfflineDev\Controllers\CarsController.cs:22 lambda_method(Closure , ControllerBase , Object[] ) +61 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2个参数)+157 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) +27 System.Web.Mvc.Async.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22 System.Web.Mvc.Async.WrappedAsyncResult
2.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() +58 System.Web.Mvc.Async.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228 System.Web.Mvc.Async.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult asyncResult) +10 System .Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__4() +35 System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult) +100 System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +11 System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +45 System.Web.Mvc.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) +13 System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult ) +22 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +28 System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System .Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9874329 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep 步骤) +48 System.Web.HttpApplication. ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +159
版本信息:
- Microsoft .NET 框架版本:4.0.30319
- ASP.NET 版本:4.7.3062.0
解决方案
推荐阅读
- python - 我怎样才能分别绘制高斯与 python 拟合?
- reactjs - React Redux,如何处理表单项的创建和重定向?
- sql - SQL Server:检查约束中的用户定义函数
- python - 检查多维numpy数组中两个轴的相等性
- docusignapi - 通过 AccountBrands 更新品牌徽标:从 API 更新
- azure - 将参数从 C# 函数应用传递到 Azure 中的另一个 Javascript 函数应用
- excel - Excel-每次在另一个单元格中插入单元格值
- mysql - 上周某一天的所有记录
- python - 二进制数到 ASCII 数转换器不起作用(PyVersion 3.6.4)
- f# - 在 F# 中运行 ML.Net Iris 演示时,我是否使用了错误的 TextLoader?