如何搜索数据库项的子字符串?

Remsset_HP

我在一个我不熟悉的 .NET 系统上工作,我试图解决一个问题,当我搜索一个项目时,它只有在我输入初始字符时才有效。例如:如果我想搜索一个山狮并输入“狮子”,它只会列出狮子和狮子鱼。如果我输入“M”,它会在所有其他以 M 开头的动物中显示 Mountain Lion。我希望它无论字符串位于项目上的哪个位置都能正常工作,因此它会返回每个包含“lion”的项目。

这里有一些代码显示了它目前是如何工作的。

[HttpPost]
    public ActionResult PerformSearch(FormCollection collection)
    {
        var parameters = new List<DataAccessParameter>();
        parameters.Add(new DataAccessParameter("@p_id_animal", System.Data.DbType.Int32, collection["id_animal"].ToDatabase()));
        parameters.Add(new DataAccessParameter("@p_nm_animal", System.Data.DbType.String, collection["nm_animal"].ToUpper().ToDatabase())); //animal name



        var list = DataHelper.Execute<BVAnimalSearch>(
             System.Data.CommandType.StoredProcedure, "sp_search_animal", parameters,
             dr => new BVAnimalSearch
             {
                 id_doenca_animal = dr.ToInt("id_animal"),
                 nm_doenca_animal = dr.ToString("nm_animal"),

             }).ToList();

        return new ObjectResult<object>(new { success = true, data = list, total = list.Count });
    }

[HttpPost]
    public ActionResult ReturnSearch(List<BVAnimalSearch> listSelected)
    {
        var qry = from item in listSelected
                  select new BVAnimal
                  {
                      idAnimal = item.id_animal,
                      nmAnimal = item.nm_animal,
                  };
        return new ObjectResult<ActionResponse>(new ActionResponse { success = true, data = qry });
    }

我想知道如何修改此代码以执行我的要求。如果需要代码的另一部分,请告诉我。

编辑:存储过程:

/****** Object:  StoredProcedure [dbo].[sp_search_animal] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER  PROCEDURE [dbo].[sp_search_animal] 
(  
 @p_id_animal int = null,    
 @p_nm_animal varchar(200) = null,    
)     
AS     
DECLARE    
    @sql_where NVARCHAR(1000),    
    @sql_expr NVARCHAR(2000),    
 @sql_orderby NVARCHAR(500),    
 @sql_groupby NVARCHAR(500);    
BEGIN     

 SET @sql_orderby = ' ORDER BY 1 ';    
 SET @sql_where = '';    

 IF @p_id_animal IS NOT NULL    
  set @sql_where = @sql_where + ' AND d.id_animal = @p_id_animal '      

 ELSE IF @p_nm_animal IS NOT NULL    
  set @sql_where = @sql_where + ' AND d.nm_animal LIKE @p_nm_animal +''%'' '    

END  


 SET @sql_expr = @sql_expr + @sql_where + @sql_orderby;


 EXECUTE sp_executesql @sql_expr, 
  N'@p_id_animal int = NULL,    
  @p_nm_animal VARCHAR(200) = NULL',    
  @p_id_animal,     
  @p_nm_animal 
END    
Remsset_HP

顺便说一句,已经解决了。当评论提到存储过程时,我意识到问题出在哪里。刚刚更改了这一行,也在字符串前添加了 %。

set @sql_where = @sql_where + ' AND d.nm_animal LIKE ''%''+ @p_nm_animal +''%'' '

谢谢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在mongodb数据库中搜索特定的字符串

来自分类Dev

如何在非常大的数据库中搜索多个字符串

来自分类Dev

在数据库中搜索给定字符串的良好算法

来自分类Dev

Laravel:如何使用雄辩的方式在数据库中搜索给定的字符串?

来自分类Dev

MySQL-通过带有特殊字符的文本字符串搜索数据库

来自分类Dev

如何使用字符串参数在数据库中搜索

来自分类Dev

在Python中,如何在TinyDB数据库中搜索值中的子字符串?

来自分类Dev

在Python中,如何在TinyDB数据库中搜索值中的子字符串?

来自分类Dev

如何在Firebase数据库中的字符串中进行简单搜索?

来自分类Dev

如何在领域数据库中将多个图像路径另存为字符串作为一项

来自分类Dev

如何在数据库表中搜索字符串并在laravel中检索匹配的列名

来自分类Dev

如何在Clickhouse数据库上搜索不区分大小写的查询中的字符串?

来自分类Dev

如何用字符串数组搜索MySQL数据库?

来自分类Dev

使用子字符串搜索SQL Server数据库

来自分类Dev

Powershell如何加密与数据库的连接字符串

来自分类Dev

用于数据库字符串搜索的哈希方法?

来自分类Dev

如何使用PHP在Access数据库中搜索字符串/关键字?

来自分类Dev

如何使用字符串关键字在数据库中搜索和加载数据

来自分类Dev

仅搜索数据库字符串的一部分时(通过PHP语句)打印数据库字符串

来自分类Dev

如何使用字符串参数在数据库中搜索

来自分类Dev

数据库连接字符串

来自分类Dev

如何在SQLite数据库中搜索字符串

来自分类Dev

如何使字符串/数据库成为变量

来自分类Dev

如何在 MS SQL 数据库中搜索特定字符串?

来自分类Dev

在sqlite数据库中搜索字符串

来自分类Dev

如何使用php在android中的mysql数据库中搜索此字符串是否作为值存在?

来自分类Dev

如何从 Sqlite 数据库中的多列搜索字符串并在列表视图中返回结果?

来自分类Dev

如何在 Firebase 数据库子引用中使用字符串?

来自分类Dev

如何在共同连接的数据库列中搜索字符串

Related 相关文章

  1. 1

    在mongodb数据库中搜索特定的字符串

  2. 2

    如何在非常大的数据库中搜索多个字符串

  3. 3

    在数据库中搜索给定字符串的良好算法

  4. 4

    Laravel:如何使用雄辩的方式在数据库中搜索给定的字符串?

  5. 5

    MySQL-通过带有特殊字符的文本字符串搜索数据库

  6. 6

    如何使用字符串参数在数据库中搜索

  7. 7

    在Python中,如何在TinyDB数据库中搜索值中的子字符串?

  8. 8

    在Python中,如何在TinyDB数据库中搜索值中的子字符串?

  9. 9

    如何在Firebase数据库中的字符串中进行简单搜索?

  10. 10

    如何在领域数据库中将多个图像路径另存为字符串作为一项

  11. 11

    如何在数据库表中搜索字符串并在laravel中检索匹配的列名

  12. 12

    如何在Clickhouse数据库上搜索不区分大小写的查询中的字符串?

  13. 13

    如何用字符串数组搜索MySQL数据库?

  14. 14

    使用子字符串搜索SQL Server数据库

  15. 15

    Powershell如何加密与数据库的连接字符串

  16. 16

    用于数据库字符串搜索的哈希方法?

  17. 17

    如何使用PHP在Access数据库中搜索字符串/关键字?

  18. 18

    如何使用字符串关键字在数据库中搜索和加载数据

  19. 19

    仅搜索数据库字符串的一部分时(通过PHP语句)打印数据库字符串

  20. 20

    如何使用字符串参数在数据库中搜索

  21. 21

    数据库连接字符串

  22. 22

    如何在SQLite数据库中搜索字符串

  23. 23

    如何使字符串/数据库成为变量

  24. 24

    如何在 MS SQL 数据库中搜索特定字符串?

  25. 25

    在sqlite数据库中搜索字符串

  26. 26

    如何使用php在android中的mysql数据库中搜索此字符串是否作为值存在?

  27. 27

    如何从 Sqlite 数据库中的多列搜索字符串并在列表视图中返回结果?

  28. 28

    如何在 Firebase 数据库子引用中使用字符串?

  29. 29

    如何在共同连接的数据库列中搜索字符串

热门标签

归档