C# 使用关系删除级联将数据插入多个表时出错

C# 使用关系删除级联将数据插入多个表时出错,c#,mysql,C#,Mysql,当我尝试输入值并单击submit按钮时,它会在exception中显示一个错误 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解要使用的正确语法”paul@yahoo.com“)”(我输入的电子邮件)在第1行 改变 “在电子邮件(Id,电子邮件)中插入值(,@email)” 到 “在电子邮件(Id,电子邮件)中插入值(@Id,@email)” 您指定将数据插入两列,但只提供一个值。第二个查询中没有包含Id。请将其包含,然后检查。 int MobileNo; string M

当我尝试输入值并单击submit按钮时,它会在exception中显示一个错误

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解要使用的正确语法”paul@yahoo.com“)”(我输入的电子邮件)在第1行

改变

“在电子邮件(Id,电子邮件)中插入值(,@email)”

“在电子邮件(Id,电子邮件)中插入值(@Id,@email)”


您指定将数据插入两列,但只提供一个值。

第二个查询中没有包含Id。请将其包含,然后检查。
int MobileNo;
string Mobile = txtMobile.Text;
int.TryParse(Mobile, out MobileNo);
MySqlConnection connection = new MySqlConnection(MyConnectionString);
MySqlCommand cmd;
connection.Open();
try 
{
    cmd = connection.CreateCommand();
    cmd.CommandText = "INSERT INTO phonebook(Id,Name,MobileNo)VALUES(@Id,@Name,@MobileNo)";
    cmd.Parameters.AddWithValue("@Id", int.Parse(txtId.Text));
    cmd.Parameters.AddWithValue("@Name", txtName.Text);
    cmd.Parameters.AddWithValue("@MobileNo", Mobile);
    cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    cmd.CommandText = "INSERT INTO email(Id,email)VALUES( ,@email)";
    cmd.Parameters.AddWithValue("@Id", int.Parse(txtId.Text));
    cmd.Parameters.AddWithValue("@email", txtEmail1.Text);
    cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    if (connection.State == ConnectionState.Open)
    {
        connection.Close();
        LoadData();
    }
}