Не выводит данные из базы данных
У меня приложение в 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 да и в принципе не уверен в правильности этого метода пожалуйста подскажите как исправить