0

我正在尝试将查询产生的唯一值保存到双变量中,因为它在数据库中存储为双变量,所以我以后可以使用以下代码将它与计数器相乘:

 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 方法分配双精度值,而且我不确定在将双精度值保存到变量时是否应该考虑其他参数.

4

1 回答 1

1

您想select从数据库中获取数据并且您正在调用ExecuteNonQuery用于插入、更新或删除命令的数据。

你需要打电话ExecuteReader,或者如果你想在 a 中获取数据,DataTable你可以填写一个DataTable.

SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
   if (rdr.Read()) 
    {
      precio = (double)rdr["precio"];
    }
}
于 2016-06-02T04:25:28.820 回答