我试图将查询产生的唯一值保存到double变量中,因为相同的值在数据库中存储为double,因此以后可以使用以下代码将其与计数器相乘:
public partial class CoronaClaraCant : Form
{
private int conteoCliks = 0;
private string producto = "CoronaClara";
private double precio;
public CoronaClaraCant()
{
InitializeComponent();
}
private void CoronaClara_Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection("server=localhost;database=database;username=root;password=***");
conn.Open();
string select = "SELECT precio FROM productos where prodnom = '" + producto + "';";
MySqlCommand cmd = new MySqlCommand(select, conn);
double result = cmd.ExecuteNonQuery();
conteoCliks++;
precio = result;
double total = (precio * conteoCliks);
lblcantidad.Text = conteoCliks.ToString();
lblprecio.Text = precio.ToString();
lbltotal.Text = total.ToString();
}
}
到目前为止,我只得到负值:
我猜这可能是因为ExecuteNonQuery,但是我无法为ExecuteScalar方法分配双精度值,而且我不确定将双精度值保存到变量中时是否应该考虑其他参数。
您select
要从数据库中获取数据,并且正在调用ExecuteNonQuery
用于Insert,Update或Delete命令的数据。
您需要致电,ExecuteReader
或者如果要在中获取数据,则DataTable
可以填写DataTable
。
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
if (rdr.Read())
{
precio = (double)rdr["precio"];
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句