我的代码不工作。我尝试了一些不同的东西,但不知道从哪里去。我在下面的查询中添加了从null开始的值。在运行我的代码之后,分数值仍然为空。在SQL查询中使用“更新”和“连接”一起增加数据库值
答案数据库和WeeklyPredictions数据库都有其他问题的几个属性。这仅仅是一个使用的第一个问题1.
var Q1 = "";
var weeknumber = "";
if (IsPost)
{
if (Request.Form["weeknumber"] != null)
{
weeknumber = Request.Form["weeknumber"];
}
if (Request.Form["Question1"] != null)
{
string selectedAnswer = Request.Form["Question1"].ToString();
Q1 = Request.Form["Question1"];
}
var db = Database.Open("foo");
var q1w = ("UPDATE t1 " +
"SET t1.weeklyScore = t1.weeklyScore + 10, t1.totalScore = t1.totalScore + 10 " +
"FROM dbo.Scores as t1 " +
"INNER JOIN dbo.WeeklyPredictions AS t2 " +
"ON t1.Id = t2.Id " +
"WHERE t2.Question1 = @0 " +
"AND t2.WeekNumber = @1");
db.Execute(q1w, Q1, weeknumber);
SQL的语法看起来不错,所以我的猜测会成为你变量赋值的问题。您可以手动运行SSMS中的SQL(使用特定的Question1值和WeekNumber值)吗?怎么了? – Aron
嗨,我没有SSMS ...也许我会下载它。我知道我在WeeklyPredictions数据库中有值,可以为用户分数添加分数。尽管如此,分数为零。我可以看到数据库设计,我可以看到表中有什么@Aron –
您不必使用SSMS(尽管我认为它使事情更简单),也许您可以使用硬编码值执行ASP代码。只是为了找出问题所在。是'weeknumber = Request.Form [“weeknumber”];'与表完全相同的数据类型?有没有填充空格或字符? SQL语句需要完全匹配。只是把它扔在那里,因为我不能肯定地说。 – Aron