列名称' phoneNumber'在SET子句

时间:2018-04-11 11:01:40

标签: c# asp.net-mvc

我正在为我的学生项目创建一个网上咖啡店。

因为它是一个大文件,我不确定任何人需要哪个部分,这里是github link

我已经创建了一个注册表单,我已经创建了一个订单。

当我尝试注册时,我在第二页上收到此错误

完整邮件错误是: 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:列名称' phoneNumber'在INSERT的SET子句或列列表中多次指定。在同一子句中不能为列分配多个值。修改子句以确保列只更新一次。如果此语句将列更新或插入到视图中,则列别名可以隐藏代码中的重复。

来源错误:

第164行:
第165行:}; 第166行:var result = await UserManager.CreateAsync(user,model.Password); 第167行:if(result.Succeeded) 第168行:{

完整日志如下:

  

[SqlException(0x80131904):列名称' phoneNumber'已指定   INSERT的SET子句或列列表中不止一次。一栏   不能在同一子句中分配多个值。修改   确保列只更新一次的子句。如果这   语句更新或将列插入到视图中,列别名可以   隐藏代码中的重复。]
  System.Data.SqlClient.SqlConnection.OnError(SqlException异常,   Boolean breakConnection,Action 1 wrapCloseInAction) +212
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction)+81
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject   stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)+630
  System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,   SqlCommand cmdHandler,SqlDataReader dataStream,   BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject   stateObj,布尔& dataReady)+4222
  System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,   RunBehavior runBehavior,String resetOptionsString,Boolean   isInternal,Boolean forDescribeParameterEncryption)+261
  System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader(布尔   isInternal,Boolean forDescribeParameterEncryption)+254
  System.Data.SqlClient.SqlCommand.InternalEndExecuteNonQuery(IAsyncResult的   asyncResult,String endMethod,Boolean isInternal)+651
  System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult的   asyncResult)+245
  System.Data.SqlClient.SqlCommand.EndExecuteNonQueryAsync(IAsyncResult的   asyncResult)+151
  System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endFunction,Action 1 endAction, Task 1 promise,Boolean   requiresSynchronization)+86
  System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61 System.Data.Entity.Utilities.CultureAwaiter`1.GetResult()   +38 System.Data.Entity.Core.Mapping.Update.Internal.d__0.MoveNext()   +2736 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61
  System.Data.Entity.Core.Mapping.Update.Internal.d__0.MoveNext()   398

     

[UpdateException:更新条目时发生错误。看到   细节的内在例外。]
  System.Data.Entity.Core.Mapping.Update.Internal.d__0.MoveNext()   +631 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61
  System.Data.Entity.Core.Objects.d__3d 1.MoveNext() +743 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
System.Data.Entity.Core.Objects.<SaveChangesToStoreAsync>d__39.MoveNext() +386 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
System.Data.Entity.SqlServer.<ExecuteAsyncImplementation>d__9
1.MoveNext()   +348 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61
  System.Data.Entity.Core.Objects.d__31.MoveNext()   802

     

[DbUpdateException:更新条目时发生错误。看到   细节的内在例外。]
  System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61
  Microsoft.AspNet.Identity.EntityFramework.d__5a.MoveNext()   +217 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61
  Microsoft.AspNet.Identity.EntityFramework.d__16.MoveNext()   +250 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61 Microsoft.AspNet.Identity.CultureAwaiter.GetResult()+35   Microsoft.AspNet.Identity.d__0.MoveNext()+1126
  System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61 Microsoft.AspNet.Identity.d__d.MoveNext()   +550 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)+99
  System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)+61 System.Runtime.CompilerServices.TaskAwaiter 1.GetResult() +28 registrationLogin.Controllers.<Register>d__15.MoveNext() in C:\Users\Itzik Private\Documents\GitHub\DatabaseMVC\registrationLogin\registrationLogin\Controllers\AccountController.cs:166 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97
System.Web.Mvc.Async.<>c__DisplayClass8_0.<BeginInvokeAsynchronousActionMethod>b__1(IAsyncResult asyncResult) +17
System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult)   asyncResult)+10
  System.Web.Mvc.Async.WrappedAsyncResultBase 1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0() +50 System.Web.Mvc.Async.<>c__DisplayClass11_1.<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.WrappedAsyncResultBase 1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__3() +35 System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult的   asyncResult)+10
  System.Web.Mvc.Async.WrappedAsyncResultBase 1.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.WrappedAsyncResultBase 1.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.WrappedAsyncResultBase 1.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.InvokeEndHandler(IAsyncResult ar)   +152 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult)   ar)+126

4 个答案:

答案 0 :(得分:2)

错误非常明显,您尝试使用插入查询,但在推荐中指定了phone number列两次:

列名称&#39; phoneNumber&#39;在INSERT的SET子句或列列表中多次指定。

再次检查您的查询并消除双重冲突,它将解决您的问题。

答案 1 :(得分:1)

例外基本上是说你在SET子句中多次指定phoneNumber时,在表中插入值,即

INSERT INTO TestTable(Id, Name, phoneNumber, Age, phoneNumber)
SELECT * FROM BLABLA

phoneNumberName之后注意加倍Age

答案 2 :(得分:0)

检查文件。 同一个人可能在一个记录中有多个输入CRLF。有时人们有多个电话号码,并且可能在CSV文件中用分隔。如果您还算不错,只需按逗号分隔即可。您的一行中有一个逗号,因此最后一列会重复出现。 查找具有两个数字的人。 另一种方法是将文件分成两个小块,例如10个小文件一个一个地加载,您将看到其中至少一个失败,然后再次将失败的文件拆分并继续这样做。

答案 3 :(得分:0)

检查数据绑定或映射,您可能会意外地将同一列的其他控件或字段绑定/映射。另一种可能性是您使用相同的变量名来引用控件或字段。我在任何地方都使用Alpha软件,遇到了同样的问题,并且在修复了数据绑定并更改了变量名后设法解决了该问题。可能会有一点差异,但根可以相同。希望这个帮助!