2013-03-25 106 views
2

我遇到了使用C#插入到SQL數據庫的問題。我得到的錯誤是必須聲明標量變量「@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);' – 2013-03-25 19:28:23

+0

在你'你else'仍然需要給'@ campusVisitDate'分配一些東西,即使你只是使用'null',否則它會認爲你忘記了那個變量。 – ean5533 2013-03-25 19:31:23

回答

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

好的,我將作業添加到null,感謝您的幫助! – 2013-03-25 19:35:22