Попутно Numeric
Вы заверили Npgsql, что передаете номер.
Затем вы передали строку.
Если вы уже уверены, что из-за другого кода есть десятичное значение в txt_price
и больше ничего не может быть, используйте:
autoInsert.Parameters[0].Value = decimal.Parse(txt_price.Text);
В противном случае объедините его с кодом, чтобы убедиться в этом, прежде чем делать что-либо еще:
decimal price;
if(!decimal.TryParse(txt_price.Text, out price))
{
//code to display message that txt_price doesn't have a valid value.
return;
}
using(var con = /*your code that constructs the connection*/)
{
using(autoInsert = /*your code that returns to command*/)
{
autoInsert.Parameters.Add(new NpgsqlParameter("price", NpgsqlDbType.Numeric));
autoInsert.Parameters[0].Value = price;
con.Open();
autoInsert.ExecuteNonQuery();
con.Close();
}
}