0

我是初学者,C#新手,不知道怎么解决这个bug,请帮忙SQL服务正在运行,VS2019更新到最新,我是Windows 10。它只说抛出异常:

System.Data.dll 中的“System.Data.SqlClient.SqlException”

这是我的代码:

private void btnInsert_Click(object sender, EventArgs e)
{ 
    conn = new SqlConnection(@"Data Source=TS-G5\SQLEXPRESS;Initial Catalog=EsoftProj;Integrated Security=True");

    cmd = new SqlCommand("INSERT INTO SES (Registration Number, Student Name, Date of Birth, Gender, Contact Number, Course enrolled in) VALUES (@Registration Number, @Student Name, @Date of Birth, @Gender, @Contact Number, @Course enrolled in)", conn);

    conn.Open();

    cmd.Parameters.Add("@Registration Number", SqlDbType.Text).Value = RegNumTB.Text;
    cmd.Parameters.Add("@Student Name", SqlDbType.Text).Value = StudentNameTB.Text;
    cmd.Parameters.Add("@Date of Birth", SqlDbType.Date).Value = DoBPick.Value.Date;
    cmd.Parameters.Add("@Gender", SqlDbType.Text).Value = GMale.Checked ? "Male" : "Female";
    cmd.Parameters.Add("@Contact Number", SqlDbType.Text).Value = ContactNumTB.Text;
    cmd.Parameters.Add("@Course enrolled in", SqlDbType.Text).Value = CourseEnrSel.GetItemText(CourseEnrSel.SelectedItem);

    cmd.ExecuteNonQuery();

    if (cmd.ExecuteNonQuery() > 0)
    {
        MessageBox.Show("Record inserted");
    }
    else
    {
        MessageBox.Show("Record failed");
    }
}
4

1 回答 1

2

大多数编程语言,包括 C# 和 SQL,都不喜欢标识符中的空格。

在 SQL Server 中,您可以使用[]. 但我不确定参数,最好避免那里有空格。

 cmd = new SqlCommand("INSERT INTO SES([Registration Number],[Student Name], ...) 
       VALUES (@RegistrationNumber,@StudentName,...)", conn);



  cmd.Parameters.Add("@RegistrationNumber", SqlDbType.Text).Value = RegNumTB.Text;
  cmd.Parameters.Add("@StudentName", SqlDbType.Text).Value = StudentNameTB.Text;
   
于 2021-08-28T07:36:07.553 回答