نمایش نتایج 1 تا 7 از 7

نام تاپیک: جستجو در LINQ

  1. #1
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    جستجو در LINQ

    سلام
    اول امیدوارم مدیران یک بخشی رو مختص به LINQ در سی شارپ قرار بدن!
    چطور میشه در لینک جستجویی را انجام داد بطوریکه:
    سه تکست باکس داریم وممکنه فقط کاربر بر اساس یکی از تکست باکسها جستجو را انجام دهد؟
    اومدم گفتم:
     private void btnsearch_Click(object sender, EventArgs e)
    {
    using (var db=new linqconectionDataContext())
    {

    if (txt1.Text==string.Empty && txt2.Text==string.Empty && txt3.Text==string.Empty)
    {
    DataGrid1.DataSource = db.tbl_search;
    return;
    }

    int @text1 =Convert.ToInt32(txt1.Text);
    Int64 @text2 = Convert.ToInt64(txt2.Text);
    string @text3 = txt3.Text;
    var src=db.tbl_search.Where(c=> c.SRC_Id==@text1 || c.SRC_Name==@text2 || c.SRC_Pol==@text3);
    if (src.Count() == 0)
    MessageBox.Show("هیچ داده ای یافت نشد", "جستجو", MessageBoxButtons.OK, MessageBoxIcon.None);
    else
    DataGrid1.DataSource = src;


    }

    ولی مشکل اینجاست که وقتی یکی از تکست ها خالی باشن،به کانورتشون و متغیر مربوطه گیر میده!
    میخواستم از TryParse استفاده کنم ولی دیدم خیلی طولانی میشه!
    آیا راه کوتاه تری هست؟
    -----------------------
    تو این چند روز هر سوالی پرسیدم کسی جواب نداده!
    امیدوارم به این یکی پاسخ داده بشه!

  2. #2

    نقل قول: جستجو در LINQ

    اول امیدوارم مدیران یک بخشی رو مختص به LINQ در سی شارپ قرار بدن!
    دوست عزیز این بخش وجود داره
    دسترسی به داده ها (ADO.Net و LINQ و ...)

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    نقل قول: جستجو در LINQ

    نقل قول نوشته شده توسط erfan_urchin مشاهده تاپیک
    دوست عزیز این بخش وجود داره
    دسترسی به داده ها (ADO.Net و LINQ و ...)
    متاسفانه این بخش مختص سی شارپ نیست!و کل دات نت رو در بر میگیره!
    فعلا سوال مطرح شده ام مهمتره!

  4. #4

    نقل قول: جستجو در LINQ

    اولا خالی بودن را جداجدا چک کنید.
    ثانیا: اگر دو تکست باکس همزمان پر بشه چی؟ در صورتی که چند ورودی پر بشه یعنی خروجی باید بر اساس and بین نتیجه هر قسمت شکل بگیره. در صورت خالی نبودن هر تکست باکس فیلتر را اعمال کنید.

    var src = db.tbl_search.AsQueryable();

    if (!string.IsNullOrWhiteSpace(txt1.Text))
    {
    int @text1 = Convert.ToInt32(txt1.Text.Trim());
    src = src.Where(c => c.SRC_Id == @text1);
    }

    if (!string.IsNullOrWhiteSpace(txt2.Text))
    {
    Int64 @text2 = Convert.ToInt64(txt2.Text.Trim());
    src = src.Where(c => c.SRC_Name == @text2);
    }

    if (!string.IsNullOrWhiteSpace(txt3.Text))
    {
    src = src.Where(c => c.SRC_Pol == txt3.Text);
    }

    if (src.Count() == 0)
    {
    dataGridView1.DataSource = null;
    MessageBox.Show("هیچ داده ای یافت نشد", "جستجو", MessageBoxButtons.OK, MessageBoxIcon.None);
    }
    else
    {
    DataGrid1.DataSource = src;
    }

  5. #5
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    نقل قول: جستجو در LINQ

    تشکر!
    حالا اگه بخوام جستجو رو به این صورت انجام بدم که دو مقدار عینا مثل هم نباشه چطوریه؟
    مثلا اگر کاربر زد 7 هر چی آی دی که توش 7 هست رو بیاره!
    یا زد الف همه اونایی که الف دارن رو بیاره
    ----------------
    راستی من WhiteSpace ندارم!جاش Empty دارم ولی وقتی کاربر Space بزنه ارور میده!
    چیکار کنم حالا؟
    آخرین ویرایش به وسیله ashkan1234 : دوشنبه 30 اردیبهشت 1392 در 11:22 صبح

  6. #6

    نقل قول: جستجو در LINQ

    از متدهای StartsWith و یا Contains میتونی استفاده کنی برای چک کردن شامل بودن. برای استفاده از این متدها نیازی به تبدیل مقادیر تکست باکس به عدد نیست بلکه باید مقدار فیلد جدول به رشته تبدیل بشه.
    برای مثال میتونی اینطوری اصلاحش کنی

    string idStr = txt1.Text.Trim();
    string nameStr = txt2.Text.Trim();
    string polStr = txt3.Text.Trim();

    if (idStr != string.Empty)
    {
    src = src.Where(c => c.SRC_Id.ToString().Contains(idStr));
    }

    if (nameStr != string.Empty)
    {
    src = src.Where(c => c.SRC_Name.ToString().Contains(nameStr));
    }

    if (polStr != string.Empty)
    {
    src = src.Where(c => c.SRC_Pol.Contains(polStr));
    }

  7. #7

    نقل قول: جستجو در LINQ

    با همون TryParse کار کن:

    int number;
    bool result = Int32.TryParse(value, out number);
    if (result)
    {
    Console.WriteLine("Converted '{0}' to {1}.", value, number);
    }
    else
    {
    if (value == null) value = "";
    Console.WriteLine("Attempted conversion of '{0}' failed.", value);
    }

تاپیک های مشابه

  1. سوال: بهینه کردن جستجو با LINQ TO SQL
    نوشته شده توسط jaykob در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: سه شنبه 14 آذر 1391, 15:38 عصر
  2. سوال: ایجاد یک login یا جستجو با linq
    نوشته شده توسط aliyankh در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 3
    آخرین پست: جمعه 10 تیر 1390, 21:10 عصر
  3. جستجو و ثبت با Linq
    نوشته شده توسط navidiran در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 2
    آخرین پست: پنج شنبه 25 شهریور 1389, 18:40 عصر
  4. نحوه ایجاد جستجو های مختلف در دستور Linq
    نوشته شده توسط ساران سافت در بخش VB.NET
    پاسخ: 6
    آخرین پست: پنج شنبه 04 شهریور 1389, 01:48 صبح
  5. جستجو در DataTable با استفاده از LINQ (LINQ to DataSet)
    نوشته شده توسط piroozman در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: چهارشنبه 25 آذر 1388, 13:12 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •