Возникло исключение: '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;