#c# #string #search
#c# #строка #Поиск
Вопрос:
Я довольно новичок в C # и пытался создать консольное приложение для склада. Я хотел бы добавить функцию поиска для поиска продуктов и просмотра дополнительной информации о продукте.
До сих пор я выяснял, как создать функцию поиска, которая ищет совпадения в текстовом документе.
И это работает просто отлично. Вопрос в том, как мне выполнить поиск в моей Products
таблице, столбце ProductName
, а не в Data.txt
файле?
Моя функция поиска :
public static void searchMenu()
{
start:
string[] words = File.ReadAllText("Data.txt").Split(' ');
Console.WriteLine("Type Product to search for:");
string searchinput = Console.ReadLine();
bool condition = false;
for (int i = 0; i < words.Length; i )
{
if (words[i].Contains(searchinput) == true)
{
condition = true;
break;
}
else
{
condition = false;
}
}
if (condition == true)
{
Console.WriteLine("{0} found in database!", searchinput);
}
else
{
Console.WriteLine("{0} not found", searchinput);
}
goto start;
}
И мой Product
класс :
public class Product
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public int ProductStock { get; set; }
public int ProductSubCategoryID { get; set; }
public int ProductEmployeeID { get; set; }
public DateTime ProductCreatedDate { get; set; }
// Constructor
public Product(int productid, string productname, int productstock, int productsubcategoryid, int productemployeeid)
{
ProductID = productid;
ProductName = productname;
ProductStock = productstock;
ProductSubCategoryID = productsubcategoryid;
ProductEmployeeID = productemployeeid;
ProductCreatedDate = DateTime.Now;
}
}
Комментарии:
1. Вы ищете текстовый файл, а не базу данных. Не могли бы вы показать код доступа к базе данных, который у вас есть? В противном случае, пожалуйста, обратитесь к SqlCommand и ADO.NET для начала.
2. Да 🙂 Это правильно, как я указал в объяснении вопроса
Ответ №1:
Есть много способов сделать это. Вы могли бы использовать entity framework, хранимые процедуры, встроенный SQL. Вот базовый пример, в котором вы извлекаете записи из базы данных, заполняете объект и возвращаете коллекцию.
public IEnumerable<Product> SearchProduct(string Criteria)
{
//initialize the connection string and products collection
var connectionString = ConsoleApplication1.Properties.Settings.Default.ConnectionString;
var products = new List<Product>();
//initialize an sql connection, setup a parametized query and fill object
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand("SELECT * FROM PRODUCT WHERE ProductName Like '%' @ProductName '%'"))
{
command.Parameters.AddWithValue("@ProductName", Criteria);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
//fill your object here
}
}
}
return products;
}
}