У меня возникла проблема с вставкой в базу данных SQL с помощью C#. Ошибка, которую я получаю:Должен объявить скалярную переменную «@campusVisitDate»
Должен объявить скалярную переменную «@campusVisitDate».
Где @campusVisitDate - это параметр, который я даю значение, а затем добавляю в базу данных.
Вот код, который дает мне проблемы
conn2.Open();
SqlCommand cmd = conn2.CreateCommand();
DateTime date = DateTime.Now;
date.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
cmd.CommandText = "INSERT INTO TableName (DateRequested, OnCampus, OnCampusVisitDate, Name, Title, Email, Phone, Fax, MinCumGPA, Keywords, EmployerNotes, ThirdParty, JobFair, CompanyURL) VALUES (@date,@onCampus,@campusVisitDate,@name,@title,@email,@phone,@fax,@mcgpa,@keywords,@empnotes,@tp,@jobfair,@compurl)";
cmd.Parameters.AddWithValue("@date",date);
if (campusvisit == 1)
{
cmd.Parameters.AddWithValue("@onCampus", 1);
cmd.Parameters.AddWithValue("@campusVisitDate",campusVisitDate);
}
else
{
cmd.Parameters.AddWithValue("@onCampus", 0);
}
Столбец OnCampusVisitDate имеет тип DateTime и переменная campusVisitDate была отформатирована с типом DateTime, а также.
По какой-либо причине это единственный столбец, который дает мне проблемы, все остальные в порядке, даже DateRequested, который также имеет тип DateTime.
Возможно, мне просто не хватает чего-то маленького, но я некоторое время занимался этой проблемой и хотел бы помочь.
(Если вам нужно больше кода, просто спросите, и я отправлю его)
удалить @ 'cmd.Parameters.AddWithValue ("onCampus", 1);' –
В файле 'else' вы все равно нужно присвоить что-то '@ campusVisitDate', даже если вы просто используете' null', иначе он думает, что вы забыли об этой переменной. – ean5533