c# - 使用like的sql select查询

标签 c# sql

我正在尝试运行这段代码

 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;
    }

它给出输出 0 。所以我尝试找出问题所在并在 Management Studio 上运行示例查询,但输出不同,它给出 1。在尝试了所有排列组合之后,我认为问题出在这个语句 com.Parameters.AddWithValue("@tags", tag); 可能 @tags查询。

最佳答案

我认为你的查询应该是

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

并在参数中加入通配符

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

关于c# - 使用like的sql select查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584186/

相关文章:

c# - 用户控件和自定义控件库的区别

c# - 连接到 Firebird 3 的 C# 程序中的 "connection rejected by remote interface"

c# - 从嵌套的DataGrid复制

php - having 子句中的未知聚合列

python - 使用 PyQt 从 MySQL 查询渲染 PDF 速度缓慢

c# - Entity Framework `AsNoTracking` 不适用于匿名投影

c# - 如何对最后 4 行数据执行聚合函数?

MySQL 查询连接的唯一结果

sql - 使用 WHERE 和 AS 从数据库中提取数据

c# - 是否可以使用 MVC 项目制作单独的 dll?