C# 上次登录的SQL代码不工作

C# 上次登录的SQL代码不工作,c#,sql,asp.net,authentication,ado,C#,Sql,Asp.net,Authentication,Ado,我有一个使用SQL创建和登录用户的登录系统。我在登录页面上还有一个UPDATESQL语句,它将显示您上次登录的数据。由于某种原因,我的SQL代码无法工作 这是我的密码: data connection = new data(); connection.newconnection(); MySqlCommand update = new MySqlCommand("UPDATE logins SET lastlogon = NOW() WHERE username = '@user'", conn

我有一个使用SQL创建和登录用户的登录系统。我在登录页面上还有一个UPDATESQL语句,它将显示您上次登录的数据。由于某种原因,我的SQL代码无法工作

这是我的密码:

data connection = new data();
connection.newconnection();
MySqlCommand update = new MySqlCommand("UPDATE logins SET lastlogon = NOW() WHERE username = '@user'", connection.connect);
update.Parameters.AddWithValue("@user", HttpContext.Current.User.Identity.Name.ToString());
update.ExecuteNonQuery();
FormsAuthentication.RedirectFromLoginPage(username.Text, false);
connection.closeconnection();
update.Dispose();
更新登录设置lastlogon=NOW(),其中username=@user

当我执行此SQL语句时,由于某些原因,它不会更新数据库,因为它不起作用。我正在使用Asp.NET4.5。这也是MYSQL代码,如果它能起作用的话。我做了一些研究,有些人说了一些关于格式化的东西,但我还不能修复我的mysql代码。我希望我的代码更新数据库,以便我可以看到谁在哪个时间登录。我的代码没有抛出特定的错误,但它就是不工作

更新我现在知道它可能不是SQL代码,而是C#后端

这是我的代码:

data connection = new data();
connection.newconnection();
MySqlCommand update = new MySqlCommand("UPDATE logins SET lastlogon = NOW() WHERE username = '@user'", connection.connect);
update.Parameters.AddWithValue("@user", HttpContext.Current.User.Identity.Name.ToString());
update.ExecuteNonQuery();
FormsAuthentication.RedirectFromLoginPage(username.Text, false);
connection.closeconnection();
update.Dispose();

我认为你不需要在
@user
周围使用
'
。参数化查询将填补这一空缺

UPDATE logins SET lastlogon = NOW() WHERE username = @user

好吧,我刚想出来。出于某种原因,我将登录重定向放在更新sql数据库的代码行的下面,这样它就没有要更新的用户了

此代码在语法上是正确的。您必须进行一些调试,以确定它“不工作”的原因。它被执行了吗?
@user
的值是多少?当您使用相同的值手动执行此语句时,会发生什么情况?@David我已经能够手动执行它,但不是用代码执行,然后出现了其他问题。我们看不到你的代码,所以我们不知道是什么。您必须对此进行调试才能找到问题。请尝试使用SQL Profiler捕获实际发送到数据库的内容(编辑:刚刚注意到它是mysql标记的-哦,好的)我只是试了一下,但没用anything@AidenGrossman请发布您收到的或可能正在接受的任何异常。应用程序没有抛出任何异常,只是没有抛出work@AidenGrossman这个答案肯定是你问题的一部分,同时使用调试器并检查
HttpContext.Current.User.Identity.Name
的值是否在数据库的
logins
表中。