Не выводит данные из базы данных

У меня приложение в WPF C# в котором есть textboxы и при вводе туда я должен закидывать данные в базу в таблицу Пациенты

CREATE TABLE [dbo].[Пациенты] (
[id_пациента]       INT           IDENTITY (1, 1) NOT NULL,
[Фамилия]           VARCHAR (50)  NULL,
[Имя]               VARCHAR (50)  NULL,
[Отчество]          VARCHAR (50)  NULL,
[Пол]               VARCHAR (50)  NULL,
[Дата_рождения]     VARCHAR (50)  NULL,
[Фактический_адрес] VARCHAR (100) NULL,
[Номер_полиса]      VARCHAR (20)  NULL,
[Номер_телефона]    VARCHAR (20)  NULL,
PRIMARY KEY CLUSTERED ([id_пациента] ASC)

);

есть методы

public void QueryInPatient(string surname, string name, string patronymic, bool male, DateTime data, string actual_address, string policy_number, string phone_number, string query)
    {
        connection.Open(); // Открыть подключение к БД
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            command.Parameters.AddWithValue("@Фамилия", surname);
            command.Parameters.AddWithValue("@Имя", name);
            command.Parameters.AddWithValue("@Отчество", patronymic);
            command.Parameters.AddWithValue("@Пол", male ? 1 : 0); // Присваиваем 1 если мужской, иначе 0
            command.Parameters.AddWithValue("@Дата_рождения", data);
            command.Parameters.AddWithValue("@Фактический_адрес", actual_address);
            command.Parameters.AddWithValue("@Номер_полиса", policy_number);
            command.Parameters.AddWithValue("@Номер_телефона", phone_number);

            command.ExecuteNonQuery(); // Выполнение команды

        }
        connection.Close(); // Закрыть подключение к БД
    }

Он для вывода записи данных в базу

public string QueryOutPatient(string query)
    {
        string result = string.Empty;
        connection.Open();
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                string surname = reader.GetString(reader.GetOrdinal("Фамилия"));
                string name = reader.GetString(reader.GetOrdinal("Имя"));
                string patronymic = reader.GetString(reader.GetOrdinal("Отчество"));
                string male = reader.GetString(reader.GetOrdinal("Пол"));
                string data = reader.GetString(reader.GetOrdinal("Дата_рождения"));
                string actual_address = reader.GetString(reader.GetOrdinal("Фактический_адрес"));
                string policy_number = reader.GetString(reader.GetOrdinal("Номер_полиса"));
                string phone_number = reader.GetString(reader.GetOrdinal("Номер_телефона"));
                result = surname + " " + name + " " + patronymic + male + " " + data + " " + actual_address + " " + policy_number + " " + phone_number;
            }
            connection.Close(); // Закрыть подключение к БД
            return result;
        }
    }

этот метод для вывода в лист бокс проблема в том, что данные в лист бокс он выводит, а при написании метода для вывода тех данных обратно в текст боксы возвращает пустые поля

public string GetPatientById(int patientId)
    {
        string result = string.Empty;
        connection.Open();

        string query = "SELECT Фамилия, Имя, Отчество FROM Пациенты";

        using (SqlCommand command = new SqlCommand(query, connection))
        {
            
            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read() && patientId == тут id пациента )
            {
                string surname = reader.GetString(reader.GetOrdinal("Фамилия"));
                string name = reader.GetString(reader.GetOrdinal("Имя"));
                string patronymic = reader.GetString(reader.GetOrdinal("Отчество"));
                result = surname + " " + name + " " + patronymic;
            }

            connection.Close();
            return result;
        }
    }

есть такой метод, (для проверки возвращаю значения в строку) не понимаю что необходимо написать в while да и в принципе не уверен в правильности этого метода пожалуйста подскажите как исправить


Ответы (0 шт):