使用Npgsql postgres和C#更新命令

我创建了一个搜索表单,根据名为许可证ID的搜索值查找记录。 我能够为该值拉出所有字段。 我的问题是我正在尝试更新该记录的任何字段,例如,如果我想更新所有这些字段值在文本框中的地址字段或邮政编码字段。 我在“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()); } 

每个命令只需要“设置”一次。

 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);