2017-09-09 43 views
-1

このコードを使用すると、nullが返されます。しかし、私はSQLでクエリを使用しようとしているとき、私は正常な結果を得る。
はここに私のコードです:SQL C#:何もResult.Read()から返されません。

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]返されます。それを修正する方法はありますか? ありがとう!

+1

私は周りの単一引用符があるはずはないと思います@ID変数 – w0051977

+0

@ nameと@ idに関する引用符を削除してみてください。 –

+0

@ jason.kaisersmith なぜですか?文字列を使用するときは、引用符を使用する必要があります。 – Roy

答えて

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); 
+0

mysqlで文字列を使うときは引用符を付ける必要があります – Roy

関連する問題