Как я могу искать данные с одного входа, например Hulk 2003, из базы данных SQL, когда в базе данных есть два столбца (Movie_title и Release_Date).
Для ясности, столбец Movie_title содержит только название фильма, а датой выпуска этого фильма является столбец Release_Date.
Я пробовал с
public ActionResult Search(string search)
{
if (search == null)
{
return View("Index");
}
var Movie = db.Movies.Where(m => m.Movie_title .Contains(search) ||
m.Release_date.Contains(search))
.ToList();
return View(Movie);
}
Почему вам нужно искать название фильма по дате выхода? Это точно не даст вам правильного результата поиска ....
Я просто назову его movieTitle, скажем так, я назвал его поиск .... как этот общедоступный поиск ActionResult (поиск строки)
ваш ввод всегда такой, как в этом формате => Hulk 2003, Transformer 2007, Avenger 2012 означает один пробел между именем и годом
не могли бы вы показать свой объект Movie?





попытайся :
if (string.IsNullOrWhiteSpace(search))
{
return View("Index");
}
string digit = new String(search.Where(Char.IsDigit).ToArray());
string letter = new String(search.Where(Char.IsLetter).ToArray());
var Movies = db.Movies.Where(m => m.Movie_title.Contains(letter) || m.Release_date.Contains(digit)).ToList();//if Release_Date type is string
//for datetime type(just for year)
var Movies = db.Movies.Where(m => m.Movie_title.Contains(letter) || m.Release_date.Year==digit).ToList();
}
Прочтите вопрос еще раз :) и перейдите в мой проект www.sedeljka.com и найдите фильм hulk, вы увидите 2 из них, но когда вы выполните поиск с помощью hulk 2003, он вернет null
Мне удается найти решение, если есть лучше, пожалуйста, опубликуйте его;)
public ActionResult Search(string search)
{
int year = 0;
string title = string.Empty;
string yearparse = string.Empty;
if (string.IsNullOrWhiteSpace(search))
{
return View("Index");
}
string movieName = search;
string movieYear = search;
for (int i = 0; i < movieName.Length; i++)
{
if (char.IsLetter(movieName[i]))
{
title += movieName[i];
}
}
for (int i = 0; i < movieYear.Length; i++)
{
if (char.IsDigit(movieYear[i]))
{
yearparse += movieYear[i];
year = int.Parse(yearparse);
}
}
var Movies = db.Movies.Where(m => m.Movie_Title.Contains(title) && m.Release_date.Contains(year.ToString())).ToList();
return View(Movies);
}
Почему дата выхода включает название фильма?