我在删除数据库中的数据时遇到问题。当我单击删除按钮时,弹出一个错误,指出无法将类型'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();
}
答案 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();
}