Как выполнить поиск в таблице SQL Server в функции поиска консольного приложения C #?

#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;
            }
        }