Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有EF的ASP MVC中创建登录/注册页面_C#_Sql_Asp.net Mvc - Fatal编程技术网

C# 如何在没有EF的ASP MVC中创建登录/注册页面

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

我正在尝试在ASP MVC中创建一个没有EF的注册和登录页面

我编写了此解决方案,但我始终收到一个错误,即“连接”和“命令”在当前上下文中不存在:

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@确切地说,我不知道你是如何理解那是粗鲁的。我只是说。