Weiß jemand, ob Sie eine ELEVATION EXCEPTION erstellen können, die angezeigt wird, wenn Sie einen falschen Datentyp eingeben? Beispiel offensichtlich funktioniert es nicht, aber es ist ein Beispiel dafür, was ich sucheErstellen einer RAISE EXCEPTION zum Überprüfen der Datentypen in postgresql
CREATE TABLE products(
name_pr varchar(20),
quantity smallint,
price smallint,
last_update timestamp,
latest_user_bd text
);
CREATE OR REPLACE FUNCTION validate_products()
RETURNS TRIGGER AS
$BODY$
BEGIN
IF NEW.price IS NOT SMALLINT THEN
RAISE EXCEPTION 'You must enter the Price';
END IF;
NEW.last_update = now();
NEW.latest_user_bd = user;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER validate_products
BEFORE INSERT OR UPDATE
ON products
FOR EACH ROW EXECUTE PROCEDURE validate_products();
Beispiel einfügen in C#
string query = "INSERT INTO products(name_pr, quantity, price) VALUES('" + txtName.Text + "', '" + txtQuantity.Text + "','" + txtPrice.Text + "')";
con.Open();
comand = new NpgsqlCommand(query, con);
Em, wenn die Daten nicht 'smallint' sind, erwarte ich, dass Sie sowieso eine Ausnahme bekommen würden, weil Postgres das nicht passen kann? – zaitsman
Was ist mit der Validierung auf der C# -Seite? Es sieht so aus, als ob Sie den Befehl an Postgres senden möchten. Wenn Sie die Abfrage parametrisieren, wird es auch kugelsicher, auch wenn es geht. – Hambone