Имя столбца phonenumber указано в предложении set более одного раза.

Я создаю для своего студенческого проекта интернет-кафе.

Поскольку это большой файл, и я не уверен, какая часть кому-нибудь понадобится, вот ссылка на github

Я создал форму регистрации и форму заказа.

Когда я пытаюсь зарегистрироваться, я получаю эту ошибку на второй странице

Полное сообщение об ошибке: Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.

Сведения об исключении: System.Data.SqlClient.SqlException: имя столбца phoneNumber указано более одного раза в предложении SET или списке столбцов INSERT. Столбцу нельзя присвоить более одного значения в одном предложении. Измените предложение, чтобы столбец обновлялся только один раз. Если этот оператор обновляет или вставляет столбцы в представление, псевдонимы столбцов могут скрыть дублирование в вашем коде.

Ошибка источника:

Строка 164:
Строка 165:}; Строка 166: var result = await UserManager.CreateAsync (user, model.Password); Строка 167: if (result.Succeeded) Строка 168: {

Полный журнал находится ниже:

[SqlException (0x80131904): The column name 'phoneNumber' is specified more than once in the SET clause or column list of an INSERT. A column cannot be assigned more than one value in the same clause. Modify the clause to make sure that a column is updated only once. If this statement updates or inserts columns into a view, column aliasing can conceal the duplication in your code.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 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, Boolean& dataReady) +4222
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) +261
System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader(Boolean 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.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) +86
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +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(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
System.Data.Entity.Core.Mapping.Update.Internal.d__0.MoveNext() +398

[UpdateException: An error occurred while updating the entries. See the inner exception for details.]
System.Data.Entity.Core.Mapping.Update.Internal.d__0.MoveNext() +631 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
System.Data.Entity.Core.Objects.d__3d1.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(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
System.Data.Entity.Core.Objects.d__31.MoveNext() +802

[DbUpdateException: An error occurred while updating the entries. See the inner exception for details.]
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
Microsoft.AspNet.Identity.EntityFramework.d__5a.MoveNext() +217 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61
Microsoft.AspNet.Identity.EntityFramework.d__16.MoveNext() +250 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61 Microsoft.AspNet.Identity.CultureAwaiter.GetResult() +35 Microsoft.AspNet.Identity.d__0.MoveNext() +1126
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61 Microsoft.AspNet.Identity.d__d.MoveNext() +550 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +61 System.Runtime.CompilerServices.TaskAwaiter1.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.WrappedAsyncResultBase1.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.WrappedAsyncResultBase1.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.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 result) +9
System.Web.CallHandlerExecutionStep.InvokeEndHandler(IAsyncResult ar) +152 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +126

почему вы просто не разместили запрос? это совершенно бесполезно

sLw 11.04.2018 13:05

отлаживать ваше приложение. Я бы также выполнил полнотекстовый поиск строки «phoneNumber» с учетом регистра и только целиком, а затем в результатах поиска двойное упоминание должно быть очевидным.

Cee McSharpface 11.04.2018 13:05

@sLowDowN я бы посоветовал ему притормозить перед публикацией ... -_-

Barr J 11.04.2018 13:06

На стороне примечания. Не проверяйте папки bin и obj, нет смысла проверять все, что сгенерировано.

phuzi 11.04.2018 13:06

По какой-то причине в вашей миграции title есть ссылки на то, что как phoneNumber, так и PhoneNumber были изменены на разные типы на AspNetUsers.

phuzi 11.04.2018 13:11

^ ага. когда-то это была строка, затем она стала int (для телефонного номера использование строки рекомендуется по нескольким причинам). пожалуйста, также найдите текущую схему (определение таблицы) таблицы AspNetUsers непосредственно в базе данных вашего SQL-сервера.

Cee McSharpface 11.04.2018 13:37
1
6
9 557
4

Ответы 4

Исключение в основном означает, что вы указали phoneNumber более одного раза в предложении SET при вставке значений в свою таблицу, т.е.

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

обратите внимание на двойной phoneNumber после Name и Age.

Ошибка довольно очевидна, вы пытаетесь использовать запрос на вставку, но дважды указываете столбец phone number в сообщении:

Имя столбца phoneNumber указано более одного раза в предложении SET или списке столбцов INSERT.

Еще раз просмотрите свой запрос и устраните двойной конфликт, это решит вашу проблему.

@Itzik, затем отправьте запрос, если вам нужна помощь. Это не ракетостроение.

Llama 11.04.2018 13:25

У меня такая же проблема, но она возникает из-за массового копирования. Тогда в чем главная проблема? есть файл csv, и я просто пытаюсь скопировать его в таблицу.

Amin Heydari Alashti 09.09.2018 07:15

Проверьте свой файл. У него может быть несколько вводимых CRLF в одной записи для одного и того же человека. Иногда у людей есть несколько телефонных номеров, и они могут быть разделены с помощью, В файле csv. Просто подсчитайте запятые, разделенные на строку, если это даже вы хорошо. В одной из ваших строк есть лишняя запятая, поэтому последний столбец повторяется. Найдите человека, у которого есть два числа. Другой способ - разделить файл на две маленькие части, например, 10 небольших файлов загружаются один за другим, вы увидите, что по крайней мере один из них не сработает, затем снова разделите сбойный файл и продолжайте делать это.

Проверьте привязку данных или сопоставление, вы можете случайно привязать / сопоставить другой элемент управления или поле с одним и тем же столбцом. Другая возможность состоит в том, что вы используете одно и то же имя переменной для ссылки на элемент управления или поле. Я использую альфа-версию где угодно, у меня такая же проблема, и мне удалось ее решить после исправления привязки данных и изменения имени переменной. Может быть небольшая разница, но корень может быть таким же. Надеюсь на эту помощь !!

Другие вопросы по теме