Код: Выделить всё
MySqlCommand command = new MySqlCommand("INSERT INTO `documentdetails` (?dtoDocumentId);", _connection);
command.Connection = _connection;
command.CommandType = CommandType.Text;
command.Parameters.Add("?dtoDocumentId", MySqlDbType.Int64).Value=documentDetail.DocumentId;
command.ExecuteNonQuery();
Таблица DocumentDetails имеет 2 поля: Id (автоматическое увеличение) и DocumentId, который имеет значение то, что я пытаюсь вставить в код.
При вызове конечной точки API, связанной с вышеуказанным методом Create(), в журналах возникают следующие ошибки:
09.04.2024 10:27:06.106 +03:00 [ERR] Во время
выполнения команды произошла неустранимая ошибка. 2024-04-09 10:27:06.109 +03:00 [ERR] в
MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior
behavior, Boolean execAsync, CancellationToken cancelToken)
at
MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior
behavior, Boolean execAsync, CancellationToken cancelToken)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQueryAsync( Boolean
execAsync, CancellationToken cancelToken) в
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() в
DocumentProcessing.Database.Repositories.DocumentDetailsRepository.CreateUpdateDocumentDetail(DocumentDetailDTO
documentDetailDTO) вC:\Users\source\repos\DocumentProcessing\Database\Repositories\DocumentDetailsRepository.cs:line
123
2024-04-09 10:27:06.111 +03:00 [ERR] Фатальный Обнаружена ошибка
при попытке прочитать набор результатов. 2024-04-09 10:27:06.113 +03:00 [ERR]
в MySql.Data.MySqlClient.MySqlDataReader.NextResultAsync(Boolean
execAsync, CancellationToken cancelToken) в
MySql.Data .MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior
behavior, Boolean execAsync, CancellationToken cancelToken)
2024-04-09 10:27:06.114 +03:00 [ERR] Чтение из потока имеет
не удалось.
2024-04-09 10:27:06.115 +03:00 [ERR] в
MySql.Data.MySqlClient.MySqlStream.LoadPacketAsync(Boolean execAsync)
в MySql.Data. MySqlClient.MySqlStream.ReadPacketAsync(Boolean
execAsync) в
MySql.Data.MySqlClient.NativeDriver.GetResultAsync(Int32 effectRow,
Int64 InsertId, Boolean execAsync) в
MySql.Data. MySqlClient.Driver.GetResultAsync(Int32 StatementId, Int32
affectedRows, Int64 InsertId, Boolean execAsync) at
MySql.Data.MySqlClient.Driver.NextResultAsync(Int32 StatementId,
Boolean Force, Boolean execAsync) at
MySql.Data.MySqlClient.MySqlDataReader.NextResultAsync(Boolean
execAsync, CancellationToken cancelToken)
2024-04-09 10:27:06.117 +03:00 [ERR] Невозможно прочитать данные из транспортного
соединения: попытка подключения не удалась, поскольку подключенная сторона
не ответила должным образом через определенный период времени, или установленное
соединение не удалось, поскольку подключенный хост не ответил..
2024-04-09 10:27:06.118 +03:00 [ERR] at
System.Net.Sockets.NetworkStream.Read(буфер Byte[], смещение Int32,
счетчик Int32) at MySql.Data.MySqlClient.TimedStream.ReadAsync(Byte[]
буфер, смещение Int32, счетчик Int32, логическое значение execAsync) в
MySql.Data.MySqlClient.TimedStream.Read(буфер Byte[], смещение Int32 ,
Количество Int32) в
MySql.Data.MySqlClient.MySqlStream.ReadFullyAsync(поток потока,
буфер Byte[], смещение Int32, количество Int32, логическое значение execAsync) в
MySql .Data.MySqlClient.MySqlStream.LoadPacketAsync(Boolean execAsync)
2024-04-09 10:27:06.119 +03:00 [ERR] Попытка подключения не удалась
так как подключенная сторона не ответила должным образом после определенный период
времени, или соединение не удалось установить, поскольку подключенный хост
не ответил. 2024-04-09 10:27:06.120 +03:00 [ERR] в
System.Net.Sockets.NetworkStream.Read (буфер Byte[], смещение Int32,
счетчик Int32)
2024-04-09 10:27:06.121 +03:00 [DBG]
UnitOfWork:SaveChanges 2024-04-09 10:27:06.122 +03:00 [ERR] Соединение
должно быть действительным и открыть для фиксации транзакции
2024-04-09 10:27:06.123 +03:00 [ERR] в MySql.Data.MySqlClient.MySqlTransaction.CommitAsync(Boolean execAsync,
CancellationToken cancelToken) в
MySql.Data.MySqlClient.MySqlTransaction.Commit() в
DocumentProcessing.Database.Repositories.UnitOfWork.SaveChanges() в
C:\Users\source\repos\DocumentProcessing\Database\Repositories\UnitOfWork .cs:line
64
После некоторого расследования я обнаружил, что при вызове конечной точки создания API с помощью Postman (с documentID=1165078) запись создается успешно. Однако когда я делаю это программно и documentID назначается посредством обработки кода, вышеуказанные ошибки возникают в журналах. Может ли это быть ошибка, связанная с типом данных documentId и типом данных базы данных? Не могли бы вы помочь мне понять, как это исправить?
Скажите, пожалуйста, почему
Код: Выделить всё
command.CommandText = String.Format("INSERT INTO `DocumentDetails` (DocumentId) VALUES ({0});", documentDetail.DocumentId); Код: Выделить всё
command.CommandText = String.Format("INSERT INTO `DocumentDetails` (DocumentId) VALUES ({0});", 1165078); Большое спасибо,
Подробнее здесь: https://stackoverflow.com/questions/782 ... -execution
Мобильная версия