C# “/”应用程序中出现服务器错误。指定的强制转换无效
我试图运行这段代码,但错误弹出,具体的强制转换无效。在添加任何LINQ之前,它都做得很好。请帮忙,谢谢。在添加任何LINQ之前,仍然很好。但现在它无法加载用户数据库上下文。我不知道这是怎么发生的。请发送帮助,谢谢C# “/”应用程序中出现服务器错误。指定的强制转换无效,c#,asp.net,linq,C#,Asp.net,Linq,我试图运行这段代码,但错误弹出,具体的强制转换无效。在添加任何LINQ之前,它都做得很好。请帮忙,谢谢。在添加任何LINQ之前,仍然很好。但现在它无法加载用户数据库上下文。我不知道这是怎么发生的。请发送帮助,谢谢 ForumDBDataContext db = new ForumDBDataContext(); protected void Page_Load(object sender, EventArgs e) { ValidationSettings.UnobtrusiveVali
ForumDBDataContext db = new ForumDBDataContext();
protected void Page_Load(object sender, EventArgs e)
{
ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
protected void btnLogin_Click(object sender, EventArgs e)
{
string emailAddress = txtEmail.Text;
string password = txtpwd.Text;
bool rememberMe = chkRememberMe.Checked;
User u = db.Users.SingleOrDefault(
x => x.EmailAddress == emailAddress &&
x.Hash == Security.GetHash(password)
);
if (u != null)
{
DateTime currentDate = DateTime.Now;
var query = from m in db.Members
where m.EmailAddress == emailAddress
select m.Last_Login_Date;
Convert.ToDateTime(currentDate);
DateTime lld = Convert.ToDateTime(query);
int diffDays = DateTime.Compare(currentDate, lld);
if (diffDays > 72)
{
Response.Redirect("ChangePwd.aspx");
}
else
{
Security.LoginUser(u.Name, u.Role, rememberMe);
}
}
不能在LINQ中使用Security.GetHashmethod,因为此方法无法转换为SQL。在运行LINQ之前,需要运行此方法并设置变量:
string emailAddress = txtEmail.Text;
string password = txtpwd.Text;
bool rememberMe = chkRememberMe.Checked;
var hashedPassword = Security.GetHash(password);
User u = db.Users.SingleOrDefault(
x => x.EmailAddress == emailAddress &&
x.Hash == hashedPassword
);
您不能在LINQ中使用Security.GetHashmethod,因为此方法无法转换为SQL。此代码是在c中完成的,在此之前它可以运行。所以我不认为Security.GetHash是problem@HowToGame您的数据库用户是什么样子的?创建视图[dbo]。[User]作为选择[Id]、[EmailAddress]、[Name]、[Hash]、[DateJoined]、[Last\u Login\u Date]、[Member]作为[Role]从[Member]联合选择[Id]、[EmailAddress]、[Name]、[Hash]、[DateJoined]、[Last\u Login\u Date]、[Admin]作为[Role]从[Admin]创建我创建了一个视图来合并member和Admin您会遇到什么错误?用户的哈希属性类型是什么?哈希是加密的密码。用户是联盟成员和管理员的视图。散列是char54,内部用户有Id、电子邮件地址、用户名、散列、最后加入日期、加入日期、配置文件图片我的意思是什么类型的Int或String等?必须将字符放在不同的字符和整数上,但我认为这不是问题。昨天还可以,但现在它无法处理UserDBContext。我真的不知道发生了什么