从数据库中搜索不同格式的字符串值 Table
Searching string value for different formats from the Database Table
在我的 ASP.NET MVC 应用程序中,我想在用户搜索值后搜索并从数据库中获取数据。示例 视图中的用户类型 BCD-1254
。在数据库中,记录可以以不同的方式保存,例如 WPBCD-1254
、BCD1254
、WPBCD-1254
、BCD-1254
、bcd-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 是搜索字符串的变量。
在我的 ASP.NET MVC 应用程序中,我想在用户搜索值后搜索并从数据库中获取数据。示例 视图中的用户类型 BCD-1254
。在数据库中,记录可以以不同的方式保存,例如 WPBCD-1254
、BCD1254
、WPBCD-1254
、BCD-1254
、bcd-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 是搜索字符串的变量。