我的C#代码(Visual Studio
private void button_insert_Click(object sender, EventArgs e)
{
try
{
conn.Open();
sql = @"select * from st_insert(:_name,:_phone_number,:_address,:_height,:_weight,:_age)";
cmd = new NpgsqlCommand(sql, conn);
cmd.Parameters.AddWithValue("_name", textBox_name.Text);
cmd.Parameters.AddWithValue("_phone_number", textBox_phone_number.Text);
cmd.Parameters.AddWithValue("_address", textBox_address.Text);
cmd.Parameters.AddWithValue("_height", textBox_height.Text);
cmd.Parameters.AddWithValue("_weight", textBox_weight.Text);
cmd.Parameters.AddWithValue("_age", textBox_age.Text);
if ((int)cmd.ExecuteScalar() == 1)
{
conn.Close();
MessageBox.Show("Success insert a new Customers", "Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
button_load.PerformClick();
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message, "Insert Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
conn.Close();
}
}
在pgadmin上插入功能
create function st_insert ( _name character, _phone_number character,
_address character, _height character,
_weight character, _age integer )
returns int
as $$
begin
insert into customers ( name, phone_number, address, height, weight, age )
values ( _name, _phone_number, _address, _height, _weight, _age );
if found
then return 1;
else
return 0;
end if;
end $$ language plpgsql
当我点击button_insert时显示错误。
错误 42883 函数 st_insert(text,text,text,text,text,text) 不存在。
该函数的最后一个参数是 "select * from st_insert(:_name,:...)"。_age integer
但您将参数添加为 text
. 错误信息证实了这一点,说它没有找到最后一个参数是文本的函数。
--> 将参数类型改为整数。