我的“注册”页面用于工作,直到我开始使用FormsAuthentication和FormsAuthenticationTicket登录。
现在在注册时,它在检查数据库中是否已存在电子邮件时失败
if (Global.DC.Users.Where(x=>x.Email == Email).Count() > 0)
return "The email address already exists in the database";
出现此错误消息
System.Data.SqlClient.SqlException: 用户''登录失败。
有谁知道如何解决这个问题?提前谢谢。
答案 0 :(得分:3)
看起来SQL登录无效。我会检查您的连接字符串以查看是否已更改,如果没有,我将验证SQL登录和数据库用户是否已正确配置。
通常,如果您正在更改DataContext的调用方式,如果您曾经使用特定的连接字符串显式测试它,或者使用默认构造函数(new ....DataContext()
)创建它,则可能没有意识到这种情况。使用默认构造函数通常使用Settings.settings
项目项中配置的设计时连接字符串,该项目存储要在web.config
配置文件中引用的连接字符串名称。你还在用同样的方式打电话吗?
另一方面,我注意到您通过DataContext
课程致电Global
。这通常被认为是一种糟糕的设计,您应该考虑使用工作单元方法进行数据访问,例如,在完成后实例化并释放您的上下文:
using (var context = new DataContext()) {
// Do work here.
}
另一个快速的问题是,使用Any
代替Count
比使用Count
更高效会导致整个枚举被枚举以获取结果,其中{{1}将在第一个有效的实例中失效。