sql >> Databáze >  >> RDS >> Sqlserver

ExecuteNonQuery vrací hodnotu -1 při použití sql COUNT navzdory řetězci dotazu

Na základě MSDN:

Pro příkazy UPDATE, INSERT a DELETE je vrácená hodnota počet řádků ovlivněných příkazem. Pokud v tabulce, která se vkládá nebo aktualizuje, existuje spouštěč, vrácená hodnota zahrnuje počet řádků ovlivněných operací vložení nebo aktualizace a počet řádků ovlivněných spouštěčem nebo spouštěči. U všech ostatních typů příkazů je návratová hodnota -1. Pokud dojde k vrácení zpět, návratová hodnota je také -1.

Chcete vrátit počet řádků ovlivněných příkazem a uložit jej do int proměnná, ale protože typ příkazu je select takže vrátí -1 .

Řešení :Pokud chcete získat počet řádků ovlivněných příkazem SELECT a uložit jej do proměnné int, můžete použít ExecuteScalar .

var theCount = (int)cmd.ExecuteScalar();


  1. Parallel Go testy provedené proti databázi PostgreSQL běžící na Dockeru

  2. Západka APPEND_ONLY_STORAGE_INSERT_POINT

  3. Trailing Zero

  4. Jak funguje funkce LOAD_FILE() v MySQL