【问题标题】:get queries for `like` in cshtml在cshtml中获取`like`的查询
【发布时间】:2014-07-08 13:45:45
【问题描述】:

我有在我的数据库中搜索信息的代码:

var querysearchcommand = "SELECT * FROM student, forum_thread, notice where student_username like '%@0%' or student_firstname like '%@0%' or student_lastname like '%@0%' or forum_thread_title like '%@0%' or notice_body like '%@0%'";

var querysearchdata = db.Query(querysearchcommand, query);

结果总是什么都没有显示,而我有一个名字包含字母“a”的学生。

谁能帮我看看我在这里做错了什么?

【问题讨论】:

  • 很抱歉问这个问题,但您真的在 .cshtml 文件中编写查询吗?
  • 是的。为什么?这样做会有问题吗?
  • 这不是问题。这只是一个糟糕的坏习惯
  • 您似乎在使用 ASP.NET MVC。 MVC 背后的整个主题是关注点分离。演示文稿可以忽略数据存储和业务逻辑,只做它应该做的事情:显示
  • @SatwikNadkarny 即使未指定(我已对其进行了编辑),该问题也指的是 Asp.Net Web Pages 框架。在这个框架中,没有关注点分离。

标签: sql razor asp.net-webpages


【解决方案1】:

我相信你需要连接LIKE比较中使用的字符串

var querysearchcommand = "SELECT * FROM student, forum_thread, notice where student_username like '%' + @0 + '%'"; // and so on

【讨论】:

  • 它给出了这个错误Input string was not in a correct format
  • 您是否逐字复制粘贴?我之前错过了关闭"
【解决方案2】:

你的查询应该是这样的

var querysearchcommand = @"SELECT * FROM student, forum_thread, notice 
    where student_username like @0 or student_firstname like @0 or 
    student_lastname like @0 or forum_thread_title like @0 or 
    notice_body like @0";

var querysearchdata = db.Query(querysearchcommand, "%" + query + "%");

注意 querysearchcommand 值之前的 @:它创建一个 Verbatim 字符串,可以跨越多行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2010-11-09
    • 2023-03-21
    • 2016-09-23
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多