C#asp.net MySQL值返回为Null

时间:2016-10-30 06:15:44

标签: c# mysql

与我的asp.net进行通信会一直返回空值...我实际上不确定原因。

我已经使用Post Man将信息推回​​去查看结果,不包括使用WPF以确保它是我的API。我能回来的唯一结果就是我正在寻找的结果...... I.E. BanID返回BanID所有其他人返回空值。

我已将此方法用于同一API上的其他内容,并且工作正常......某处我犯了错字。

这是针对与WPF与MySQL通信的C#asp.net上的搜索框

    [HttpPost]
    [Route("A3Bans/searchBan")]
    public string oSearchBan(tBan ban)
    {
        {
            tBan bans = new tBan();
            string dbConnection = "datasource=127.0.0.1;port=3306;username=admin;password=123";
            MySqlConnection conDataBase = new MySqlConnection(dbConnection);
            MySqlCommand dbSearch;
            conDataBase.Open();
            MySqlDataReader dbReader;
            string selectQuery = "Select * FROM a3bans.bans WHERE BanID=" + int.Parse(ban.BanID);

            dbSearch = new MySqlCommand(selectQuery, conDataBase);
            dbReader = dbSearch.ExecuteReader();

            if (dbReader.Read())
            {
                tBan searchBan = new tBan();
                searchBan.GuidOrIP = dbReader.GetString("GUID");
                //searchBan.BanType = dbReader.GetString("BanType");
                searchBan.BanReason = dbReader.GetString("Reason");
                searchBan.Proof = dbReader.GetString("Proof");
                bans.Equals(searchBan);
            }
            dbReader.Close();  
            return bans.GuidOrIP;  
        }

2 个答案:

答案 0 :(得分:0)

如果BanID是PK,则只返回一行

If there are multiple rows for one BanID, then you need to iterate dbReader
while(dbReader.Read())
{
}

最后检查你的退货声明。

答案 1 :(得分:0)

更改

bans.Equals(searchBan);

bans = searchBan;