2013-03-25 28 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