从数据库中搜索不同格式的字符串值 Table

Searching string value for different formats from the Database Table

在我的 ASP.NET MVC 应用程序中,我想在用户搜索值后搜索并从数据库中获取数据。示例 视图中的用户类型 BCD-1254。在数据库中,记录可以以不同的方式保存,例如 WPBCD-1254BCD1254WPBCD-1254BCD-1254bcd-1254、''bcd1254`` 明智。所以从控制器,我想select所有与搜索值相关的记录。

我是这样做的,但是从搜索结果来看,并不是所有的记录都是从数据库中获取的table。我如何从控制器中搜索它?

List<ServiceHistoryVM> History = new List<ServiceHistoryVM>();

            var Services = (from a in db.AppRequest
                            join v in db.VehicleService on a.Id equals v.Req_Id
                            join vd in db.VehicleServiceDetails on v.Id equals vd.VehicleService_Id
                            where vd.Vehicle_No.ToLower() == VehicleNumber.ToLower()
                            select new ServiceHistoryVM
                            {
                                Date = a.Created_Date,
                                MileageToDate = vd.Current_Service_Mileage.ToString(),
                                MileageToLast = vd.Last_Service_Mileage.ToString()
                            }
                            ).ToList();

让我试着回答你的问题。 如果您的主要关注点是获取或 return 所有包含输入内容或与输入内容相似的匹配记录,那么您将需要一个简单的算法来调整您的搜索条件。

char[] sch =new char[]{'-','/','*'};
string[] searchwords = searchcriteria.Split(sch);

string keyword="";
foreach(var word in searchwords){
  keyword=keyword + word;
}

您的 linq lambda 查询现在如下所示:

var searchresult = FROM s in db.Table WHERE s.FIELD.Contains(searchcriteria) || s.FIELD.Contains(keyword) SELECT s;

在这种情况下,您可能需要将搜索中的许多字符替换为空 space。 searchcriteria 是搜索字符串的变量。