Обновить команду, используя Npgsql postgres и C #

1

Я создал форму поиска, чтобы найти запись на основе значения поиска, называемого идентификатором лицензии. Я могу вытащить все поля для этой ценности. Мой вопрос: я пытаюсь обновить любое поле для этой записи, например, если я хочу обновить поле адреса или поле почтового индекса, в котором все эти значения полей находятся в текстовых полях. Я получаю синтаксическую ошибку на или рядом с "" Lname "". Lname - имя поля базы данных для фамилии. Этот проект - всего лишь тестовый проект, чтобы познакомиться с Postgres. Вот мой исходный код. Я не уверен, в чем проблема, имя поля правильно указано.

 private void UpdateRecord()
    {
        try
        {
            NpgsqlConnection conn = Connection.getConnection();
            conn.Open();

            NpgsqlCommand cmd = new NpgsqlCommand("update info set \"Fname\" = :FirstName, set \"Lname\" = :LastName, set \"Address\" = :Address," +
                "set \"City\" = :City, set \"State\" = State, set \"Zip\" = :Zip," + 
                "set \"PhoneNumber\" = :PhoneNumber where \"LicenceNumber\" = '" + LicenseID + "' ;", conn);

            cmd.Parameters.Add(new NpgsqlParameter("FirstName", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters.Add(new NpgsqlParameter("LastName", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters.Add(new NpgsqlParameter("Address", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters.Add(new NpgsqlParameter("City", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters.Add(new NpgsqlParameter("State", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters.Add(new NpgsqlParameter("Zip", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters.Add(new NpgsqlParameter("PhoneNumber", NpgsqlTypes.NpgsqlDbType.Text));
            cmd.Parameters[0].Value = txtFirstName.Text;
            cmd.Parameters[1].Value = txtLastName.Text;
            cmd.Parameters[2].Value = txtAddress.Text;
            cmd.Parameters[3].Value = txtCity.Text;
            cmd.Parameters[4].Value = cboState.Text;
            cmd.Parameters[5].Value = txtZip.Text;
            cmd.Parameters[6].Value = mtxtPhoneNumber.Text;

            cmd.ExecuteNonQuery();
            conn.Close();
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
  • 0
    в вашей схеме это "прописные", прописные или смешанные буквы "lanme". Это имеет значение в postgre.
  • 0
    Поле Lname в схеме. Смешанный случай.
Теги:

1 ответ

4
Лучший ответ

Вам нужно только "установить" один раз за команду.

NpgsqlCommand cmd = new NpgsqlCommand("update info set \"Fname\" = :FirstName, \"Lname\" = :LastName, \"Address\" = :Address," +
                "\"City\" = :City, \"State\" = State, \"Zip\" = :Zip," + 
                "\"PhoneNumber\" = :PhoneNumber where \"LicenceNumber\" = '" + LicenseID + "' ;", conn);
  • 0
    Это сделал это! Спасибо за помощь!!
  • 0
    @ user3752770 Если этот ответ оказался полезным, обязательно проголосуйте или примите его.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню