首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySqlDataReader不读

MySqlDataReader不读
EN

Stack Overflow用户
提问于 2016-09-29 18:56:01
回答 1查看 93关注 0票数 0

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

代码语言:javascript
复制
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,但是我三次检查了所有的值,它们与数据库值完全匹配,但是它没有读取查询的行。这可能是一个非常愚蠢的错误,但我找不到问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 20:02:44

因此,我再次放置了一个断点并重新检查了变量,这些变量与Console.WriteLine很好,但是,在查询中它如下所示:

代码语言:javascript
复制
"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添加到末尾,我应该在前面看到这一点,感谢那些想帮助我的人,我在查询之前添加了这个函数来解决这个问题:

代码语言:javascript
复制
pwd = pwd.Replace("\0", "");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39777996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档