He usado este método antes para devolver la cantidad de filas modificadas. Estoy para ejecutar un método de inserción, la inserción funciona bien en el procedimiento almacenado, pero el valor de retorno de ExecuteNonQuery siempre devuelve -1.C#: ExecuteNonQuery() devuelve -1
Aquí está mi código C#:
int ret = 0;
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(QueryName, conn))
{
conn.Open();
if (Params != null)
cmd.Parameters.AddRange(Params);
cmd.CommandType = CommandType.StoredProcedure;
ret = cmd.ExecuteNonQuery();
conn.Close();
}
}
return ret;
¿Por qué recibo -1 en lugar del número real de filas cambiado?
¿Entonces las modificaciones en la tabla realmente tienen lugar pero usted obtiene -1? – Tudor
Probablemente devuelva lo que sea que retorne tu sproc, que probablemente sea -1 si no se especifica lo contrario ... –
¿Has capturado realmente la llamada SQL usando el generador de perfiles y se ha ejecutado manualmente para ver el número de fila cambiado real? –