必须声明标量变量@pp

我尝试使用SQL查询获取数量,但它不起作用;


     string selectrow;

        int rowindex = dataGridView1.CurrentCell.RowIndex;

        int columnindex = dataGridView1.CurrentCell.ColumnIndex;

        selectrow = dataGridView1.Rows[rowindex].Cells[columnindex].Value.ToString();

        string query = @"select quantite_pdt from produits where ref_pdt = @pp";

        try

        {

            using (var conn = loaddatabaseconnexion.connexion_BDD())

            using (var cmd = new SqlCommand(query, conn))

            {

                cmd.Parameters.AddWithValue("@pp", int.Parse(selectrow));

                SqlCommand command = new SqlCommand(query, loaddatabaseconnexion.connexion_BDD());

                string nbstr = command.ExecuteScalar().ToString();

            }

        }

        catch(Exception ex)

        {

            MessageBox.Show(ex.ToString());

        }

我不明白,因为我的变量@pp被声明了。


MYYA
浏览 92回答 1
1回答

ITMISS

此处应使用单个命令对象,而不是两个。您的代码应如下所示。我建议不要使用AddWithValue。它有时可能会得到不正确的数据类型。http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/using (var cmd = new SqlCommand(query, conn))            {                cmd.Parameters.AddWithValue("@pp", int.Parse(selectrow));                string nbstr = cmd.ExecuteScalar().ToString();            }
打开App,查看更多内容
随时随地看视频慕课网APP