-1

当我使用此代码时,我得到 null 返回。但是当我尝试通过 sql 使用查询时,我得到了正常的结果。
这是我的代码:

public byte[] GetInfo(UnturnedPlayer player , string vehiclename)
        {
            try
            {
                MySqlConnection connection = createConnection();
                MySqlCommand command = connection.CreateCommand();
                command.CommandText = "select `info` from `" + GaragePlugin.Instance.Configuration.Instance.DatabaseTableName + "` where `player` = '@id' AND `vname` = '@name';";
                connection.Open();
                command.Parameters.AddWithValue("@id", player.CSteamID);
                command.Parameters.AddWithValue("@name", vehiclename);
                Console.WriteLine(command.CommandText.Replace("@id", player.CSteamID.ToString()).Replace("@name", vehiclename));
                var result = command.ExecuteScalar();
                if(result != null)
                {
                    Console.WriteLine(result.ToString(), ConsoleColor.Blue);
                    byte[] bytearray = Convert.FromBase64String(result.ToString());
                    return bytearray;
                }
                connection.Close();
                return new byte[500];
            }
            catch (Exception ex)
            {
                Logger.Log("Error with GetInfo: " + ex);
                return new byte[500];
            }
        }

返回字节[500]。有什么办法可以解决吗?谢谢!

4

1 回答 1

0

我相信你的 SQL 语句应该是这样的:

command.CommandText = "select info from " + GaragePlugin.Instance.Configuration.Instance.DatabaseTableName + " where player = @id AND vname = @name;

并且您的参数应该像这样添加到集合中:

command.Parameters.AddWithValue(@id, player.CSteamID);
command.Parameters.AddWithValue(@name, vehiclename);
于 2017-09-09T10:19:05.153 回答