suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Fehler: MySQL – Operand sollte 1 Spalte enthalten.

<p>Diese Abfrage funktioniert, wenn ich sie direkt in MySQL eingebe, aber nicht in C#. </p> <pre class="brush:php;toolbar:false;">double deltaTime = (DateTime.Now - CollectTime).TotalSeconds; string query = String.Format("UPDATEbuildings LINKS JOIN server_buildings ONbuildings.global_id = server_buildings.global_id UNDbuildings.level = server_buildings.level SETbuildings.storage =buildings.storage + (server_buildings.speed * {0} * IF(buildings .boost >= NOW(), 2, 1)) WHERE Buildings.global_id IN('generator', 'test')", deltaTime / 3600d);</pre> <p>Ich habe gerade den Fehler MySQL erhalten – Operand sollte 1 Spalte enthalten. Danke für den Vorschlag! :)</p><p>Es wird erwartet, dass der Wert der „Speicherung“ im Laufe der Zeit steigt. </p><p><br /></p>
P粉529245050P粉529245050498 Tage vor467

Antworte allen(1)Ich werde antworten

  • P粉710454910

    P粉7104549102023-07-25 11:53:11

    我对MySQL还比较新。这是带有参数的查询。

    string query = String.Format("UPDATE buildings JOIN server_buildings ON buildings.global_id = server_buildings.global_id AND buildings.level = server_buildings.level SET buildings.storage = buildings.storage + (server_buildings.speed * ?Num * IF(buildings.boost >= NOW(), 2, 1)) WHERE buildings.global_id IN('generator', 'test')");
                         
                using (MySqlCommand command = new MySqlCommand(query, connection))
                {
                    MySqlParameter param = new MySqlParameter("?Num", (deltaTime / 3600d));
                    command.Parameters.Add(param);
          
                   command.ExecuteNonQuery();
                }

    Antwort
    0
  • StornierenAntwort