这是代码:
autoInsert.Parameters.Add(new NpgsqlParameter("price", NpgsqlDbType.Numeric));
autoInsert.Parameters[0].Value = txt_price.Text;
con.Open();
autoInsert.ExecuteNonQuery();
con.Close();
当我执行查询时,它显示错误:"输入字符串的格式不正确。" 如何将该字符串转换为数字。 txt_price是文本框。
答案 0 :(得分:3)
autoInsert.Parameters[0].Value = ConvertToInt32(txt_price.Text);
答案 1 :(得分:2)
在传递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();
}
}