保存在变量中并乘以双值查询结果 C#/MySql

Posted

技术标签:

【中文标题】保存在变量中并乘以双值查询结果 C#/MySql【英文标题】:Save in a variable and multiply double value query result C#/MySql 【发布时间】:2016-06-02 04:17:35 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

你想select数据库中的数据,你正在调用ExecuteNonQuery,它用于插入、更新或删除命令

您需要致电ExecuteReader,或者如果您想在DataTable 中获取数据,您可以填写DataTable

SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)

   if (rdr.Read()) 
    
      precio = (double)rdr["precio"];
    

【讨论】:

以上是关于保存在变量中并乘以双值查询结果 C#/MySql的主要内容,如果未能解决你的问题,请参考以下文章

如何理解导致 MySQL 函数中截断不正确的双值错误的原因?

HiveQL:将查询结果用作变量

如何将 MySql 查询的结果保存到 VB 变量中? [复制]

如何将MYSQL查询结果赋值给一个变量

如何将 MS-Access 选择查询的结果保存在 C#.net 中的变量中?

将双值截断到小数点后6位。