我遇到了使用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类型。
也许我只是想念一些小东西,但我一直在这个问题一段时间,并希望得到一些帮助。
(如果你需要更多的代码,只问我将它张贴)
删除@'cmd.Parameters.AddWithValue( “onCampus”,1);' – 2013-03-25 19:28:23
在你'你else'仍然需要给'@ campusVisitDate'分配一些东西,即使你只是使用'null',否则它会认为你忘记了那个变量。 – ean5533 2013-03-25 19:31:23