C# 如何在没有EF的ASP MVC中创建登录/注册页面
我正在尝试在ASP MVC中创建一个没有EF的注册和登录页面 我编写了此解决方案,但我始终收到一个错误,即“连接”和“命令”在当前上下文中不存在:C# 如何在没有EF的ASP MVC中创建登录/注册页面,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,我正在尝试在ASP MVC中创建一个没有EF的注册和登录页面 我编写了此解决方案,但我始终收到一个错误,即“连接”和“命令”在当前上下文中不存在: public ActionResult Login(Client cmodel) public string GetPassword(string email) { using (connection = new SqlConnection(ConfigurationManager.AppSettings["deli
public ActionResult Login(Client cmodel)
public string GetPassword(string email)
{
using (connection = new SqlConnection(ConfigurationManager.AppSettings["deliverycon"]))
{
using (command = new SqlCommand(@"select top 1 password from clients where email=@email", connection))
{
connection.Open();
command.Parameters.AddWithValue("@email", email);
using (reader = command.ExecuteReader())
{
reader.Read();
return reader["password"].ToString;
}
}
}
}
在C#中,即使在使用语句的中,也必须在分配变量之前声明变量。您基本上完成了与此等效的操作:
myValue = 10;
编译器将抱怨当前上下文中不存在myValue
。解决方案是声明变量,然后分配它,这可以通过一行代码完成:
int myValue = 10;
实际上,您从未为连接
或命令
或读取器
声明过变量。您需要将它们声明为SqlConnection
和SqlCommand
和SqlDataReader
,或者您可以
此示例显示了两种类型:
public string GetPassword(string email)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["deliverycon"]))
{
using (var command = new SqlCommand(@"select top 1 password from clients where email=@email", connection))
{
connection.Open();
command.Parameters.AddWithValue("@email", email);
using (var reader = command.ExecuteReader())
{
reader.Read();
return reader["password"].ToString;
}
}
}
}
var
通常在类型从上下文中清除时使用,而明确表示类型不清楚时经常使用
此外,您似乎正在数据库中以明文形式存储密码。这是个糟糕的主意。密码应该是单向散列的。如果您不知道自己在做什么,那么使用自己的安全系统不是一个好主意。在C#中,您必须在分配变量之前声明变量,即使在语句中也是如此。您基本上完成了与此等效的操作:
myValue = 10;
编译器将抱怨当前上下文中不存在myValue
。解决方案是声明变量,然后分配它,这可以通过一行代码完成:
int myValue = 10;
实际上,您从未为连接
或命令
或读取器
声明过变量。您需要将它们声明为SqlConnection
和SqlCommand
和SqlDataReader
,或者您可以
此示例显示了两种类型:
public string GetPassword(string email)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["deliverycon"]))
{
using (var command = new SqlCommand(@"select top 1 password from clients where email=@email", connection))
{
connection.Open();
command.Parameters.AddWithValue("@email", email);
using (var reader = command.ExecuteReader())
{
reader.Read();
return reader["password"].ToString;
}
}
}
}
var
通常在类型从上下文中清除时使用,而明确表示类型不清楚时经常使用
此外,您似乎正在数据库中以明文形式存储密码。这是个糟糕的主意。密码应该是单向散列的。如果您不知道自己在做什么,那么最好不要启动自己的安全系统。您缺少“var”,请尝试var connection、var命令和var reader。您需要声明-SqlConnection connection,然后是SqlCommand命令,最后是SqlDataReader。谢谢大家!但问题是我无法将reader转换为StringServer。这段代码有几处错误。无论从何处复制/粘贴,都不是可靠的工作代码源。我想编译器在这里会给你各种语法和类型错误。我不会错过ADO.NET。这就像EF中的一行(带IoC),没有神奇的字符串。您缺少“var”,请尝试var connection、var命令和var reader。您需要先声明-SqlConnection connection,然后声明SqlCommand命令,最后声明SqlDataReader谢谢大家!但问题是我无法将reader转换为StringServer。这段代码有几处错误。无论从何处复制/粘贴,都不是可靠的工作代码源。我想编译器在这里会给你各种语法和类型错误。我不会错过ADO.NET。这就像EF中的一行(带IoC),没有神奇的字符串。@精确更新以使用reader修复它,尽管我希望您能够从连接和命令的修复中找到它。啊,好的!你们有好的芭蕾舞曲或者制作这个的想法吗?因为我在互联网上搜索了所有的东西,没有发现任何东西EF@Exact堆栈溢出不是为您查找教程的。这只是一个问题!没必要粗鲁!我问你是否有想法,因为我搜索了它,发现只有EF@确切地说,我不知道你是如何理解那是粗鲁的。我只是简单地说。@Exact更新后也可以用reader修复它,尽管我希望您可以从连接和命令的修复中找到它。啊,好的!你们有好的芭蕾舞曲或者制作这个的想法吗?因为我在互联网上搜索了所有的东西,没有发现任何东西EF@Exact堆栈溢出不是为您查找教程的。这只是一个问题!没必要粗鲁!我问你是否有想法,因为我搜索了它,发现只有EF@确切地说,我不知道你是如何理解那是粗鲁的。我只是说。