使用MySQL中的存储过程删除数据

时间:2017-03-17 19:18:05

标签: c# mysql

我在删除数据库中的数据时遇到问题。当我单击删除按钮时,弹出一个错误,指出无法将类型'System.Windows.Forms.TextBox'强制转换为'System.IConvertible'。任何人都可以解决此问题吗?这是我第一次遇到这个错误。

以下代码调用我的数据库中的存储过程

这是我使用的代码

private void button3_Click(object sender, EventArgs e)
    {

        MySqlParameter[] pms = new MySqlParameter[1];
        pms[0] = new MySqlParameter("uProdNo", MySqlDbType.Int32);
        pms[0].Value = ProdNo;

        MySqlCommand command = new MySqlCommand();

        command.Connection = conString;
        command.CommandType = CommandType.StoredProcedure;
        command.CommandText = "pos_delete";

        command.Parameters.AddRange(pms);

        conString.Open();
        if (command.ExecuteNonQuery() == 1)
        {
            dt.Rows.Clear();
            MessageBox.Show("Deleted");

        }
        else
        {
            MessageBox.Show("Sorry nothing to be deleted");
        }
        conString.Close();

    }

2 个答案:

答案 0 :(得分:0)

如何将文本框分配给整数参数?

提供为Convert.ToInt32(ProdNo.Text)

答案 1 :(得分:0)

如果不能使用转换器Convert.ToInt32(ProdNo.Text),请使用此Convert.ToDecimal(ProdNo.Text)

所以,最终的代码将是

private void button3_Click(object sender, EventArgs e)
    {

        MySqlParameter[] pms = new MySqlParameter[1];
        pms[0] = new MySqlParameter("uProdNo", MySqlDbType.Int32);
        pms[0].Value = Convert.ToInt32(ProdNo.Text);

        MySqlCommand command = new MySqlCommand();

        command.Connection = conString;
        command.CommandType = CommandType.StoredProcedure;
        command.CommandText = "pos_delete";

        command.Parameters.AddRange(pms);

        conString.Open();
        if (command.ExecuteNonQuery() == 1)
        {
            dt.Rows.Clear();
            MessageBox.Show("Deleted");

        }
        else
        {
            MessageBox.Show("Sorry nothing to be deleted");
        }
        conString.Close();

    }