Возникло исключение: 'System.Data.SqlClient.SqlException' в System.Data.SqlClient.dll [закрыто]

Я новичок и новичок в C#, я не знаю, как исправить эту ошибку, пожалуйста, помогите SQL Service запущена, VS2019 обновлен до последней версии, и я Windows 10. Он только сказал, что выброшено исключение:

'System.Data.SqlClient.SqlException' в System.Data.dll

Вот мой код:

      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");
    }
}

1 ответ

Большинство языков программирования, включая 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;
   
Другие вопросы по тегам