必须声明标量变量“@Stockno”

时间:2017-12-17 09:10:43

标签: c#

我有两种不同形式的“addstock”形式和“viewstocks”形式。

当我在addstock表单中添加stock_no和详细信息并返回时,按下viewstock形式的“刷新按钮”;新记录将以viewstock形式出现。

viewstock表单也有删除按钮。

当我选择行并按删除时,我收到此错误

  

必须声明标量变量“@Stockno”

我需要打电话给它。请帮忙,

private void bunifuFlatButton3_Click(object sender, EventArgs e)
{
    try 
    {
        conn.Close();
        conn.Open();

        String DeleteQuery = "delete from Stocks_Item where Stock_code = (@Stockno)";

        SqlDataAdapter execute = new SqlDataAdapter(DeleteQuery, conn);
        execute.SelectCommand.ExecuteNonQuery();

        MessageBox.Show("You've deleted successfully!", "Successful Message", MessageBoxButtons.OK, MessageBoxIcon.Information);

        conn.Close();
        cmd.ExecuteNonQuery();

        SqlDataAdapter data = new SqlDataAdapter("Select * from Stocks_Item", conn);
        DataTable dt = new DataTable();
        data.Fill(dt);

        dataGridView1.DataSource = dt;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

1 个答案:

答案 0 :(得分:1)

当你想要删除某些内容时,你应该使用SqlDataAdapter - 使用一个独立的SqlCommand - 就像这样:

private void bunifuFlatButton3_Click(object sender, EventArgs e)
{
    try 
    {
        conn.Close();

        string DeleteQuery = "delete from Stocks_Item where Stock_code = @Stockno";

        SqlCommand cmdDelete = new SqlCommand(DeleteQuery, conn);
        -- add the parameter!
        cmdDelete.Parameters.Add("@stockno", SqlDbType.Int).Value = (provide the value for `@stockno` here!);

        // open connection, execute command, close connection
        conn.Open();
        cmdDelete.ExecuteNonQuery();
        conn.Close();

        MessageBox.Show("You've deleted successfully!", "Successful Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
        .....
    }
}