Mysql异常整数值不正确:'从asp.net web应用程序的列
本文关键字:net asp web 应用程序 整数 异常 不正确 Mysql | 更新日期: 2023-09-27 18:09:33
我试图从ASP更新使用mysql数据库创建的表。. NET网页。当从网页插入数据到表时mysqlexception:不正确的整数值:'@Age' for column Age at row 1此异常发生。
我尝试在查询中不使用单引号围绕列名,但在这种情况下也不工作年龄不能为空异常发生
下面是我使用的DML查询的代码片段:
MySqlCommand cmd = new MySqlCommand("Insert into personal(PAN,PName,Age)values('@PAN','@PName','@Age')",con);
cmd.Parameters.AddWithValue("@PAN",SqlDbType.VarChar).Value= panBox.Text;
cmd.Parameters.AddWithValue("@PName", SqlDbType.VarChar).Value=nameBox.Text;
cmd.Parameters.AddWithValue("@Age",MySqlDbType.Int32).Value=Convert.ToInt32(ageBox.Text);
cmd.ExecuteNonQuery();
cmd.Dispose();
我是初学者,有人能帮我解决这个问题吗?
两个错误。
第一个:参数占位符不应该用单引号括起来。否则它们将变成字面值字符串,不再被识别
第二个:AddWithValue接受两个参数。第一个是参数的名称,第二个是值而不是数据库类型。
MySqlCommand cmd = new MySqlCommand(@"Insert into personal(PAN,PName,Age)
values(@PAN,@PName,@Age)",con);
cmd.Parameters.AddWithValue("@PAN",panBox.Text);
cmd.Parameters.AddWithValue("@PName", nameBox.Text);
cmd.Parameters.AddWithValue("@Age",Convert.ToInt32(ageBox.Text));
cmd.ExecuteNonQuery();
当然,如果ageBox
为空,这有引发异常的风险。我不知道您的要求,但如果年龄字段需要是一个有效的数字,那么可以添加一点错误检查,以防止平庸的错误。
int ageValue;
if(!Int32.TryParse(ageBox.Text, out ageValue))
{
MessageBox.Show("Please type a valid value for Age!");
return;
}
.... insert code follows...