Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的INSERT语句不适用于一个表?_C#_Mysql - Fatal编程技术网

C# 为什么我的INSERT语句不适用于一个表?

C# 为什么我的INSERT语句不适用于一个表?,c#,mysql,C#,Mysql,我有以下插页: public static void insertStudent(int personId, string firstName, string lastName, string DOB, int phoneNumber, string address, int postCode, string majorField, int gradePointAverage) { MySqlConnection conn; My

我有以下插页:

 public static void insertStudent(int personId, string firstName, string lastName, string DOB, int phoneNumber, string address, int postCode, string majorField, int gradePointAverage)
        {
            MySqlConnection conn;
            MySqlCommand cmd;
            string sql = "INSERT INTO person (personId, firstName, lastName, DOB, phoneNumber, address, postCode) VALUES (@personId, @firstName, @lastName, @DOB, @phoneNumber, @address, @postCode)";
            GetConnection(out conn, out cmd, sql);
            try
            {
                cmd.Parameters.AddWithValue("@personId", personId);
                cmd.Parameters.AddWithValue("@firstName", firstName);
                cmd.Parameters.AddWithValue("@lastName", lastName);
                cmd.Parameters.AddWithValue("@DOB", DOB);
                cmd.Parameters.AddWithValue("@phoneNumber", phoneNumber);
                cmd.Parameters.AddWithValue("@address", address);
                cmd.Parameters.AddWithValue("@postCode", postCode);
                cmd.ExecuteNonQuery();

                long id = (long)cmd.LastInsertedId;

                sql = "INSERT INTO student (Person_PersonId, majorField , gradePointAverage) VALUES (" + id + ",@majorField, @gradePointAverage";
                cmd = new MySqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@majorField", majorField);
                cmd.Parameters.AddWithValue("@gradePointAverage", gradePointAverage);
                cmd.ExecuteNonQuery();
            }

            catch (NullReferenceException nre)
            {
                MessageBox.Show(nre.Message);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                try
                {
                    MessageBox.Show("New student record created created.");
                    cmd.Connection.Close();
                    conn.Close();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
            }
        }
通过此按钮执行:

 private void btnInsertStudentNumberAdmin_Click(object sender, EventArgs e)
    {
        StudentHelperClass.insertStudent(int.Parse(txtPersonIDStudent.Text), txtFirstNameStudent.Text, txtLastNameStudent.Text, txtDOBStudent.Text, int.Parse(txtPhoneNumberStudent.Text), txtAddressStudent.Text, int.Parse(txtPostCodeStudent.Text), txtMajorFieldStudent.Text, int.Parse(txtGpaStudent.Text));
    }
但是在单击时,我会看到一个消息框,上面说
您的SQL语法有错误;检查与您的mySql服务器版本对应的手册,以获得正确的版本,并在第1行的“near”中使用正确的语法,然后插入
person
表中的我的条目,但学生的条目不插入

我已经确定所有的
int
s都是int,所有的
string
都是string。我不确定问题出在哪里

sql = "INSERT INTO student (
    Person_PersonId, 
    majorField,
    gradePointAverage
) VALUES (" + id + ",
    @majorField, 
    @gradePointAverage";
缺少一个右括号。它应该是:

sql = "INSERT INTO student (
    Person_PersonId, 
    majorField,
    gradePointAverage
) VALUES (" + id + ",
    @majorField, 
    @gradePointAverage
)";
缺少一个右括号。它应该是:

sql = "INSERT INTO student (
    Person_PersonId, 
    majorField,
    gradePointAverage
) VALUES (" + id + ",
    @majorField, 
    @gradePointAverage
)";
sql=“插入学生(Person\u PersonId、majorField、gradePointAverage)值(“+id+”、@majorField、@gradePointAverage)”; 缺少结尾)…?

sql=“插入学生(Person\u PersonId,majorField,gradePointAverage)值(“+id+”,@majorField,@gradePointAverage)”; 错过结局)