Pregunta Sql seleccionar consulta utilizando como


Estoy tratando de ejecutar este código

 public long getTopicCountWithTag(String tag)
    {
        long count;
        query = " SELECT count(*) FROM [DB_us2].[dbo].[discns] where tags like '%@tags%'";
        try
        {
            com = new SqlCommand(query, con);
            com.Parameters.AddWithValue("@tags", tag);
            con.Open();          
            sdr = com.ExecuteReader();
            sdr.Read();
            count= sdr.GetInt32(0);

        }
        catch (Exception e)
        {
            count = -1;
            throw e;
        }
        finally
        {
            con.Close();
        }
        return count;
    }

está dando salida 0 . Así que intento averiguar cuál es el problema y ejecutar la consulta de muestra en el estudio de gestión, pero la salida es diferente, es 1. Después de probar toda la combinación de permutación, creo que el problema es con esta afirmación com.Parameters.AddWithValue("@tags", tag); podría ser posible @tags No se reemplaza en la consulta.


5
2017-10-25 07:53


origen


Respuestas:


Creo que tu consulta debe ser

string query = "SELECT count(*) FROM [DB_us2].[dbo].[discns] where tags like @tags";

Y añada el comodín al parámetro.

com.Parameters.AddWithValue("@tags", "%" + tag + "%");

9
2017-10-25 07:56



Debiera ser

 AddWithValue("@tags", "%" + tag + "%");

tienes que traer% s dentro de AddWithValue


0
2017-10-25 08:08



query = " SELECT count(*) FROM [DB_us2].[dbo].[discns] where tags like '%'+ @tags + '%'";

y dejar todo como estaba.


0
2017-10-25 08:17