6

I have created a search form to locate a record based on a search value called license ID. I am able to pull the all the fields for that value. My question is I am trying to update any field for that record, example if I want to update the address field or the zip code field which all these field values are in text boxes. I get an syntax error at or near ""Lname"". Lname is the database field name for last name. This project is just a test project to get familiar with Postgres. Here is my source code. I am not sure what the problems is, the field name is correctly specified.

 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());
        }
2
  • in your schema, is "lanme" lowercase, uppercase, or mixed case. This matters in postgre. Commented Jun 18, 2014 at 13:56
  • The field is Lname in the schema. Mixed case. Commented Jun 18, 2014 at 13:59

1 Answer 1

8

You only need "set" once per command.

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);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.