【发布时间】:2019-05-01 06:23:30
【问题描述】:
cmd.ExecuteNonQuery 出现错误。当我在 Web 表单中添加数据时,它会显示:
“MySql.Data,MySqlClient.MySqlException 类型的异常”发生在 MySql.Data.dll 中,但未在用户代码中找到。执行命令时遇到附加信息..致命错误。
我找不到导致致命错误的原因。
protected void Page_Load(object sender, EventArgs e)
{
con.ConnectionString = "Data Source=localhost;Initial Catalog=fir;Integrated Security=True;User Name=root;Password=;";
con.Open();
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
MySqlCommand cmd = new MySqlCommand("insert into reportcrime" + "(Name,CNIC,Phone1,Phone2,Email,Gender,City,Address,CrimeType,CrimeDetail)values(@Name,@CNIC NO,@ContactNo.1,@ContactNo.2,@Email Address,@Gender,@City Name,@Postal Address,@Crime Type,@Crime Detail)",con);
cmd.Parameters.AddWithValue("@Name",txtName.Text);
cmd.Parameters.AddWithValue("@CNIC NO",txtCnicNo.Text.ToString());
cmd.Parameters.AddWithValue("@Contact No.1",txtcontactNo1.Text);
cmd.Parameters.AddWithValue("@Contact No.2",txtcontactNo2.Text);
cmd.Parameters.AddWithValue("@Email Address",txtEmail.Text);
cmd.Parameters.AddWithValue("@Gender",ddlGender.SelectedItem.Value);
cmd.Parameters.AddWithValue("@City Name",txtCityName.Text);
cmd.Parameters.AddWithValue("@Postal Address",txtaddress.Text);
cmd.Parameters.AddWithValue("@Crime Type",ddlCrimeType.SelectedItem.Value);
cmd.Parameters.AddWithValue("@Crime Details",txtCrimeDetails.Text);
cmd.ExecuteNonQuery();
}
【问题讨论】:
-
您的查询看起来不正常意味着错字太多!但是你能从你得到的异常中添加内部异常吗?
-
InnerException: MySql.Data.MySqlClient.MySqlException HResult=-2147467259 消息=必须定义参数“@CNIC”。 Source=MySql.Data ErrorCode=-2147467259 Number=0
-
首先,将参数名称中的空格替换为下划线,即从
@CNIC NO到@CNIC_NO全部相同 -
您的查询必须通过适当的间距(如
INSERT INTO Tablename (C1, C2, C3) VALUES (@P1, @P2, @P3))来区分关键字和变量,所以请在我的查询中提及空格并将其与您的进行比较