Помогите пожалуйста с пониманием того, что говорят эти исключения и как я могу их разрешить?
Я создал приложение с ADO.NET.Отладчик проекта не показывает никаких ошибок, хотя, во время выполнения я получаю эти исключения.Я предполагаю, что я испортил некоторые строки кода, которые я написал в файле PersonkartotekDBUtil.cs, внутри этого метода GetFullContactPersonTreeDB.Здесь я пытаюсь показать полную обзорную информацию о человеке с подключением свойств каталога Person через принципы JOIN.
Может кто-нибудь исправить меня, пожалуйста?
Метод, который я подозреваю, не работает:
public void GetFullContactPersonTreeDB(ref Person fcpt)
{
string fullPersonkartotek = @"SELECT Person.PersonId, Person.FirstName, Person.MiddleName, Person.LastName, Person.Email, Person.Notes, Person.PrimaryAddress, Person.AlternativeAddresses, Person.TelefonNumbers
Address.AddressID, Address.StreetName, Address.HouseNumber, Address.PostNr, Address.PersonPrimary, Person.AlternativePerson
PostNr.PostNrID, PostNr.PostNumber, PostNr._Country, PostNr._City
City.CityID, City.CityName,
Country.CountryID, Country.CountryCode, Country.CountryName,
Telefon.TelefonID, Telefon.Number, Telefon.TelefonType, Telefon.TelefonProvider,
Provider.ProviderID, Provider.ProviderName
FROM Person INNER JOIN
Address ON Person.PersonId = Address.Person INNER JOIN
Telefon ON Person.PersonID = Telefon.Person
AlternativeAddress ON Person.PersonID = AlternativeAddress.Person
Address ON Person.PersonID = Address.Person
WHERE (Person.PersonID = @PersonId)";
}
Сообщение об ошибке в окне консоли после запуска программы:
System.Data.SqlClient.SqlException (0x80131904): неправильный синтаксис рядом с '.'.в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection, действие 1 wrapCloseInAction) at
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection, Action
1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObjectConignSlaySignSlayCallSignLoneLockLockSignLockLockLoneLockLoneLockLockLoneObB).TdsParser.TryRun (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean и dataReady) в System.Data.SqlClient.SqlDataReader.TryConsumeMetaData () в System.Data.SqlClient.SqlDataReader.get_MetaData () в системе.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader DS, RunBehavior runBehavior, String resetOptionsString, булева IsInternal, булева forDescribeParameterEncryption, булева shouldCacheForAlwaysEncrypted) при System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, булева returnStream, булева асинхронный, Int32тайм-аут, задание и задание, BooleaasyncWrite, Boolean inRetry, SqlDataReader ds, Boolean descriptionParameterEncryptionRequest) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior, метод выполненияasyncWrite, Boolean inRetry) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, логический returnStream, метод String) в System.Data.SqlClient.SeceReReader (метод String.SqlClient.SqlCommand.ExecuteReader () в Infrastructure.PersonkartotekDB.ADONET.PersonkartotekDBUtil.GetFullContactPersonTreeDB (Person & fcpt) в C: \ Users \ User \ Desktop \ E18I4DABHandIn2au2016082168 \ Personkartotek \ Инфраструктура \ PersonkartotekDB.ADONET \ PersonkartotekDBUtil.cs: линия 382 ClientConnectionId: 716d2899-cbbe-4aa6-89de-66452d907b66 Номер ошибки: 102, состояние: 1, класс: 15
необработанный Exception: System.Data.SqlClient.SqlException: неправильный синтаксис рядом с '.'.в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection, действие 1 wrapCloseInAction) at
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection, Action
1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject..TdsParser.TryRun (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean и dataReady) в System.Data.SqlClient.SqlDataReader.TryConsumeMetaData () в System.Data.SqlClient.SqlDataReader.get_MetaData () в системе.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, логическое значение isInternal, логическое значение дляDescribeParameterEncryption, логическое значение shouldCacheForAl.cmdBehavior, RunBehavior runBehavior, булева returnStream, булева асинхронной, Int32 тайм-аут, задача и задачи, булева asyncWrite, булева inRetry, SqlDataReader DS, булева describeParameterEncryptionRequest) при System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean, String returnStreamметод, TaskCompletionSource`1 завершение, тайм-аут Int32, Task & task, Boolean & usedCache, логическое asyncWrite, Boolean inRetry) в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, метод метода RunBehavior для возврата к объекту.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String) в System.Data.SqlClient.SqlCommand.ExecuteReader () в инфраструктуре.Personkartotek \ Инфраструктура \ PersonkartotekDB.ADONET \ PersonkartotekDBUtil.cs: строка 449 в ApplicationLogic.PersonkartotekApp.ProgramApp () в C: \ Users \ User \ Desktop \ E18I4DABHandIn2au2016082168 \ Personkartotek \ ApplicationLogic \ PersonkartotekApp.cs: строка 14 в ProgramApplication.Program.Main (пользовательская строка [Users \] \ Desktop \ в C:\ E18I4DABHandIn2au2016082168 \ Personkartotek \ ProgramApplication \ Program.cs: строка 10
В приложении показано исключение в отладчике.![enter image description here](https://i.stack.imgur.com/QoXqD.jpg)