2015-11-23 2 views
0

Моя таблица имеет 5 колонок:ASP.NET MVC: как искать десятичное значение?

public partial class NPG_Chemical_DOT_and_Guide_Numbers 
{ 
    [Key] 
    [Column(TypeName = "numeric")] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public decimal NPG_Chemical_DOT_and_Guide_Numbers_ID { get; set; } 

    [Column(TypeName = "numeric")] 
    public decimal NPG_Chemical_ID { get; set; } 

    [StringLength(64)] 
    public string DOT_Number { get; set; } 

    public string Guide_Number { get; set; } 

    [StringLength(128)] 
    public string Conditional { get; set; } 
} 

Теперь я могу искать текстовые значения в таблице с помощью:

public ActionResult Index(string searchString) 
    { 
     var search = from m in db.NPG_Chemical_DOT_and_Guide_Numbers 
        select m; 
     if (!String.IsNullOrEmpty(searchString)) 
     { 
      search = search.Where(s => s.DOT_Number.Contains(searchString) || s.Guide_Number.Contains(searchString) ||s.Conditional.Contains(searchString)); 
     } 
     return View(search); 
} 

и:

<p> 
@using (Html.BeginForm()) 
{ 
<p> 
    Title: @Html.TextBox("SearchString") 
    <input type="submit" value="Search" /> 
</p> 
} 
</p> 

Вопрос заключается в том, чтобы обыскать десятичные значения? Я попытался использовать преобразование в строку, но показал ошибку LINQ.

+0

Что вы подразумеваете под десятичными знаками? Какова ошибка, с которой вы сталкиваетесь? –

+0

Первые 2 столбца являются десятичными типами, а не строковыми типами, поэтому я не могу их искать, используя: if (! String.IsNullOrEmpty (searchString)) {search = search.Where (s => s.DOT_Number.Contains (searchString)) } – Layla

+0

Возможный дубликат [поиск десятичных значений в запросе Linq] (http://stackoverflow.com/questions/29622158/search-decimal-values-in-linq-query) –

ответ

1

вы можете использовать SqlFunctions.StringConvert. Нет перегрузки для int, поэтому вам нужно использовать двойную или десятичную. Ваш код выглядит следующим образом:

var items = from c in contacts 
      select new ListItem 
      { 
       Value = SqlFunctions.StringConvert((double)c.ContactId).Trim(), 
       Text = c.Name 
      }; 
+0

Как сделать несколько значений? и что я должен изменить в: if (! String.IsNullOrEmpty (searchString))? – Layla

Смежные вопросы