【问题标题】:How to fix fatal error encountered during command execution in asp.net如何修复在 asp.net 中执行命令期间遇到的致命错误
【发布时间】: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))来区分关键字和变量,所以请在我的查询中提及空格并将其与您的进行比较

标签: c# mysql asp.net


【解决方案1】:

这里的致命错误是由于您的代码由于您犯的错误而导致的异常。正如您在 sql 查询中所述,您可以知道这一点,因为您的异常是 MySqlException 类型。

现在您应该检查异常最 Inner Exception 并阅读其消息。它会像这样“解析查询时出错”很可能是在抱怨,因为参数名称中不能有空格。

【讨论】:

  • 在内部异常中,它说“必须定义 Message=Parameter '@CNIC'”。什么意思?
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
相关资源
最近更新 更多