MySqlDataReader doesnt read

本文关键字:read doesnt MySqlDataReader | 更新日期: 2023-09-27 18:09:45

因此,我正在为我的公司制作一个小应用程序,允许用户登录和访问特定的数据,但是,在查询数据库的服务器端,MySqlDataReader不读取,正如我在以下代码中指出的:

public string HandleLogin(string uname, string pwd)
    {
        MySqlDataReader READER;
        int count = 0;
        int clearance = 0;
        if (uname == "" || pwd == "")
            return "";
        CONN = new MySqlConnection();
        CONN.ConnectionString = Config.CONNSTRING;
        string query = "select * from members where username='" + uname + "' and password='" + pwd + "'";
        try
        {
            CONN.Open();
            COMMAND = new MySqlCommand(query, CONN);
            READER = COMMAND.ExecuteReader();
            while(READER.Read())
            {
                count = count + 1; //<-- this should happen, but it doesnt
                if (count == 1)
                    clearance = READER.GetInt32("clearance");
                else
                    return "";
            }
            if (count == 1)
                return Convert.ToString(clearance);
            else
                return "";
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
            return "";
        }
        finally
        {
            CONN.Dispose();
        }
    }

我确信它应该读取1行,询问它发现的行数,它说0,但我三次检查所有值,它们与数据库值完全匹配,但它没有读取查询行。这可能是一个非常愚蠢的错误,但我无法找到问题

MySqlDataReader doesnt read

所以,我再次放置了一个断点并重新检查了变量,变量与控制台都很好。WriteLine,但是,在查询中它看起来像这样:

"select * from members where username='matthias' and password='M20UjefsltnFCTDsCL1temvFOtBcnN8gNtGbQevVTkkG8jCXZlbxQ3ykOTx0fV4Ls2VnAzOzx2F5CTY+jEDSzg=='0'0'0'0'"

但它应该是:"select * from members where username='matthias' and password='M20UjefsltnFCTDsCL1temvFOtBcnN8gNtGbQevVTkkG8jCXZlbxQ3ykOTx0fV4Ls2VnAzOzx2F5CTY+jEDSzg=='"

由于客户端和服务器之间的数据加密以及它在末尾添加'0'0'0'0 '0的填充,我应该早点看到这个,感谢那些想要帮助我的人,我通过在查询之前添加这个函数来解决它:

pwd = pwd.Replace("'0", "");