Невозможно исправить отображение данных из таблиц MS SQL в datagridview - PullRequest
0 голосов
/ 27 февраля 2019

Не знаю, как это исправить.Итак, у меня есть импортированная таблица (скриншот) Пациент (# 1) и Диагноз (Диагностика) (# 2) из ​​MS SQL Server.Первая таблица содержит полный список данных пациента и внешний ключ для id_diagnoz, в котором указаны Stage и Name_diagnoz.Таблица (# 3) - это готовая опция для вывода данных без лишних столбцов, но это не проблема. "select Pacient.id_patient, Pacient.Name, Pacient.Surname, Pacient.Middle_name, Pacient.Age, Pacient.Legal_address_Clinic, Diagnoz.Name_diagnoz, Diagnoz.Stage FROM Pacient JOIN Diagnoz ON Diagnoz.id_diagnoz = Pacient.id_diagnoz"; Это хорошо работает.


Проблема чтобы при заполнении данных из текстовых полей и комбинированных списков мне сначала нужно было сгенерировать id_diagnoz из таблицы (# 2), а затем добавить другую информацию в таблицу пациентов (# 1).Однако я не мог сделать это в течение нескольких часов, потому что даже ошибка не привела.Поэтому я решил отдельно добавить id_diagnoz в пустую таблицу (# 4), чтобы убедиться, что мой запрос работает.Пожалуйста, помогите мне с этим id_diagnoz и другими данными, помещенными в таблицу пациента.

  private void button5_Click(object sender, EventArgs e)
        {

            using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-R551818\\SQLEXPRESS;Initial Catalog=Fond;Integrated Security=True"))
            {



                SqlDataAdapter comm = new SqlDataAdapter("SELECT id_diagnoz FROM Diagnoz WHERE Name_diagnoz = '" + comboBox2.Text + "' and Stage = '" + comboBox3.Text + "'" +
                    "INSERT INTO Pacient (Name, Surname, Middle_name, Column__Passport, Legal_address_Clinic, Age)" +
                    " VALUES (@Name, @Surname, @Middle, @Passport, @AddresClinic, @Age) ", conn);

                comm.SelectCommand.Parameters.AddWithValue("@Name", textBox3.Text);
                comm.SelectCommand.Parameters.AddWithValue("@Surname", textBox4.Text);
                comm.SelectCommand.Parameters.AddWithValue("@Middle", textBox5.Text);
                comm.SelectCommand.Parameters.AddWithValue("@Passport", maskedTextBox1.Text);
                comm.SelectCommand.Parameters.AddWithValue("@AddresClinic", comboBox1.Text);
                comm.SelectCommand.Parameters.AddWithValue("@Age", textBox7.Text);
                DataSet ds = new DataSet();
                comm.Fill(ds);
                //da.Fill(ds, "Pacient");

                dataGridView2.DataSource = ds.Tables[0];
                conn.Close();

                conn.Open();

            }}

Снимок экрана для понимания

1 Ответ

0 голосов
/ 27 февраля 2019

Разве вы не должны указывать id_diagnoz в запросе вставки и указывать значение этого поля в подзапросе, который у вас там был?Что-то вроде:

INSERT INTO Pacient (Name, id_diagnoz, Surname, Middle_name, Column__Passport, Legal_address_Clinic, Age)
VALUES (@Name, 
SELECT id_diagnoz FROM Diagnoz WHERE Name_diagnoz = '" + comboBox2.Text + "' and Stage = '" + comboBox3.Text + "'",
@Surname, @Middle, @Passport, @AddresClinic, @Age)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...