2013-03-25 7 views
2

У меня возникла проблема с вставкой в ​​базу данных 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.

Возможно, мне просто не хватает чего-то маленького, но я некоторое время занимался этой проблемой и хотел бы помочь.

(Если вам нужно больше кода, просто спросите, и я отправлю его)

+0

удалить @ 'cmd.Parameters.AddWithValue ("onCampus", 1);' –

+0

В файле 'else' вы все равно нужно присвоить что-то '@ campusVisitDate', даже если вы просто используете' null', иначе он думает, что вы забыли об этой переменной. – ean5533

ответ

2
else 
    { 
     cmd.Parameters.AddWithValue("@onCampus", 0); 
     cmd.Parameters.AddWithValue("@campusVisitDate",null); 
    } 
+0

Хорошо, я добавил задание в null, спасибо за помощь! –