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

نام تاپیک: دستور فیلتر به روش Entity Framework

  1. #1
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    اصفهان
    سن
    33
    پست
    181

    دستور فیلتر به روش Entity Framework

    با سلام
    فیلتر در EF به روش زیر انجام میشه.(کد زیر فیلتر بر اساس نام هست)

    var qsreach = db.members.Where(i => i.membername.Contains( textBox1.Text);
    dataGridView1.DataSource = qsreach.ToList();


    مشکل اینجاست که اگر نوع فیلد در جدول از نوع عددی(int) باشه. جواب نمیده و حتماً باید نوع فیلد رشته باشه. من میخوام فیلتر رو بر اساس کدعضویت بدم که از نوع int هست.
    چه باید کرد؟

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: دستور فیلتر به روش Entity Framework

    یعنی شما میخواهید contains روی اعداد بزنید؟

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    اصفهان
    سن
    33
    پست
    181

    نقل قول: دستور فیلتر به روش Entity Framework

    نقل قول نوشته شده توسط parvizwpf مشاهده تاپیک
    یعنی شما میخواهید contains روی اعداد بزنید؟
    میخوام معادل این دستور فیلتر رو برای فیلدهای عددی به کار ببرم. (به عبارت ساده تر بر اساس ش عضویت فیلتر کنم).
    آخرین ویرایش به وسیله farzadkamali : چهارشنبه 29 مرداد 1393 در 23:27 عصر

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: دستور فیلتر به روش Entity Framework

    Contains برای بررسی وجود یک رشته در رشته دیگه استفاده میشه. مثلا رشته Framework مقدار work رو شامل میشه.
    کاری که شما میخواین بکنین مقایسه برابر بودن دو عدد هست.ابتدا باید مقدار textbox که به صورت رشته هست رو به عدد تبدیل کنید و با متد Equals یا عملگر == مقایسه رو انجام بدین:

    int enteredMemberId;
    if (int.TryParse(textBox1.Text, out enteredMemberId)) {
    var qsreach = db.members.Where(i => i.memberId.Equals(enteredMemberId));
    dataGridView1.DataSource = qsreach.ToList();
    }
    else {
    MessageBox.Show("Invalid member id.");
    }

    فرض بر این بوده شما ستون عددی با نام memberId دارین.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    اصفهان
    سن
    33
    پست
    181

    نقل قول: دستور فیلتر به روش Entity Framework

    نقل قول نوشته شده توسط plus مشاهده تاپیک
    Contains برای بررسی وجود یک رشته در رشته دیگه استفاده میشه. مثلا رشته Framework مقدار work رو شامل میشه.
    کاری که شما میخواین بکنین مقایسه برابر بودن دو عدد هست.ابتدا باید مقدار textbox که به صورت رشته هست رو به عدد تبدیل کنید و با متد Equals یا عملگر == مقایسه رو انجام بدین:

    int enteredMemberId;
    if (int.TryParse(textBox1.Text, out enteredMemberId)) {
    var qsreach = db.members.Where(i => i.memberId.Equals(enteredMemberId));
    dataGridView1.DataSource = qsreach.ToList();
    }
    else {
    MessageBox.Show("Invalid member id.");
    }

    فرض بر این بوده شما ستون عددی با نام memberId دارین.
    این کد جست و جوی دقیق رو انجام میده. در حالی که من می خوام فیلتر مثل دستور like در sql انجام بشه. یعنی با وارد کردن عدد 1 ، تمامی رکوردهایی که با 1 شروع میشن یا شامل میشه رو برگردونه.

  6. #6

    نقل قول: دستور فیلتر به روش Entity Framework

    سلام
    همونطور که دوستان فرمودند ، Contains روی رشته ها عمل میکنه ، ضمن اینکه عملگر Like توی TSql هم فقط در حالت زیر روی اعداد عمل میکنه که در این شرایط فرقی با عملگر = نداره. (منظور اینه که باید عین عدد جلوی Like قرار بگیره و نمیتونید از% هم استفاده کنید برای اعداد)

    SELECT * FROM YourTable WHERE id LIKE 1234




    موفق باشید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  7. #7
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    اصفهان
    سن
    33
    پست
    181

    نقل قول: دستور فیلتر به روش Entity Framework

    درسته. متوجه شدم. از Contains که بگذریم.
    یعنی میفرمایید در تکنولوژی Entity Framework تحت هیچ شرایط نمیشه این کار رو انجام داد؟

  8. #8
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: دستور فیلتر به روش Entity Framework

    ازونجایی که Query های نوشته شده به SQL تبدیل میشن، شما باید ابتدا با استفاده از SqlFunctions مقدار عدد مورد نظر رو به رشته تبدیل کنید و بعد از Contains استفاده کنید:

    var idString= textBox1.Text;
    var qsreach = db.members.Where(i =>SqlFunctions.StringConvert((double)i.memberId).C ontains(idString));
    dataGridView1.DataSource = qsreach.ToList();

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

  1. دستور Insert , Delete در Entity FrameWork
    نوشته شده توسط m.bibjan در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 0
    آخرین پست: یک شنبه 29 دی 1392, 23:22 عصر
  2. سوال: سوالهایی در خصوص روش Entity Framework
    نوشته شده توسط sadaf_ در بخش C#‎‎
    پاسخ: 11
    آخرین پست: دوشنبه 31 تیر 1392, 18:22 عصر
  3. آموزش: فیلم آموزشی :: کار با بانک اطلاعاتی به روش Entity FrameWork
    نوشته شده توسط JaVa در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: سه شنبه 20 فروردین 1392, 10:22 صبح
  4. آموزش: فیلم آموزشی :: کار با بانک اطلاعاتی به روش Entity FrameWork
    نوشته شده توسط JaVa در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 12 فروردین 1392, 09:42 صبح
  5. اخطار Security Warning در هنگام استفاده از روش Entity Framework Database First
    نوشته شده توسط Mr Code در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 0
    آخرین پست: چهارشنبه 18 بهمن 1391, 13:44 عصر

برچسب های این تاپیک

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

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