مرجع تخصصی زبان Csharp
جستجو

بانک اطلاعات Sqlite در سی شارپ - بخش پنجم

پست پنجم: پیدا کردن مخاطب با جستجو (WHERE و LIKE)

در این پست قصد داریم تا نجوه جستجو در بانک اطلاعات را ارائه دهیم.


فرض کنید دفترچه تلفن ما هزار تا مخاطب داره. پیدا کردنشون سخته! اینجا باید بریم سراغ جستجو. تو SQL برای جستجوی متنی از WHERE و LIKE استفاده می‌کنیم.
 
LIKE به ما اجازه میده که عین کلمه رو ندونیم. مثلاً اگه بنویسیم Ali% یعنی هر چیزی که با Ali شروع میشه. علامت % یعنی "هر تعداد کاراکتری بعدش".
 
می‌خوایم یه تابع بنویسیم که هم تو نام جستجو کنه، هم تو نام خانوادگی و هم تو شماره تلفن.
 

public void SearchContacts(string searchTerm)
{
    string connectionString = "Data Source=PhoneBook.db";
    
    using var connection = new SqliteConnection(connectionString);
    connection.Open();

    // جستجو در سه فیلد با استفاده از OR و LIKE
    string searchQuery = @"
        SELECT Id, FirstName, LastName, PhoneNumber 
        FROM Contacts 
        WHERE FirstName LIKE @search 
           OR LastName LIKE @search 
           OR PhoneNumber LIKE @search";

    using var command = new SqliteCommand(searchQuery, connection);
    
    // اضافه کردن % به اول و آخر جستجو تا هر جا که این کلمه بود رو پیدا کنه
    command.Parameters.AddWithValue("@search", "%" + searchTerm + "%");

    using var reader = command.ExecuteReader();

    Console.WriteLine($"--- نتایج جستجو برای: {searchTerm} ---");
    while (reader.Read())
    {
        Console.WriteLine($"{reader.GetString(1)} {reader.GetString(2)} - {reader.GetString(3)}");
    }
}

حالا اگه به تابع ما کلمه "علی" یا "0912" رو بدید، می‌گرده تو تمام فیلدها و هر کدوم که این توشون بود رو براتون میاره بیرون.
 
 
 
💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران