View Full Version : جستجو در Entity
Abbas Naghdi
پنج شنبه 12 دی 1392, 20:25 عصر
سلام ... بچه ها کسی کد جستجوی در Entity
میخوام بر اساس چند فیلد و کلمه به کلمه جستجو انجام بشه ...
کسی کد یا آموزشی نداره ؟
khokhan
پنج شنبه 12 دی 1392, 21:07 عصر
سلام ... بچه ها کسی کد جستجوی در Entity
میخوام بر اساس چند فیلد و کلمه به کلمه جستجو انجام بشه ...
کسی کد یا آموزشی نداره ؟
چند جور می شه این کار رو انجام داد ،از طریقLambda Expressions بهتر به نتیجه می رسی و این خود نیز به دو شکل می شه اجراش کرد
1. با استفاده از شرط(if )
try
{
var dc = new DataClasses1DataContext();
var results = from i in dc.GetTable<tbl_service>()
select i;
if (comboBox1.Text == "کدراننده")
results = results.Where(r => r.codecar == Convert.ToInt16(textBox2.Text) && r.code_moshtarak == Convert.ToInt16(textBox1.Text));
if (comboBox1.Text == "مقصد")
results = results.Where(r => r.maghsad.Contains(textBox2.Text) && r.code_moshtarak == Convert.ToInt16(textBox1.Text));
if (comboBox1.Text == "تاریخ")
results = results.Where(r => r.date.Contains(textBox2.Text) && r.code_moshtarak == Convert.ToInt16(textBox1.Text));
dataGridView1.DataSource = results;
catch (Exception ex)
{
MessageBox.Show(ex.Message + "\n نشد که بشه ", "error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
روش دوم از طریق switch/case که به نظرم این روش بهتر از اولیه :لبخند:
private void TxtSearch_TextChanged(object sender, EventArgs e)
{
if (TxtSearch.Text != "")
{
var query = from i in db.frosh.OrderByDescending(a => a.id)
select i;
switch (CmbSelectItem.Text)
{
case "کدکالا":
var id = int.Parse(TxtSearch.Text);
query = query.Where(s => s.kala_code==id);
break;
case "نام کالا":
query = query.Where(s => s.kala_name.Contains(TxtSearch.Text));
break;
case "سرویس":
var price = int.Parse(TxtSearch.Text);
query = query.Where(s => s.price == price);
break;
default:
query = query.OrderBy(s => s.id);
break;
}
dataGridView1.DataSource = query.ToList();
}
}
Abbas Naghdi
جمعه 13 دی 1392, 01:46 صبح
با تشکر متغیرهای من مشخص نیستند !
مهرداد صفا
جمعه 13 دی 1392, 12:01 عصر
با تشکر متغیرهای من مشخص نیستند !
سلام.
منظورتون از "متغیرها" دقیقا چه چیزی هست؟ آیا جدول مورد جستجو باید توسط کاربر و به طور پویا مشخص شود.؟ لطفا دقیقتر مطرح کنید.
Abbas Naghdi
جمعه 13 دی 1392, 14:44 عصر
سلام
یک جدول دارم که میخوام جستجو بر اساس اون انجام بشه .
جدول من شامل 3 فیلد هست ...
نام
نام خانوادگی
شهر محل سکونت
حالا برای این سه تا 3 تکس باکس گذاشتم.
میخوام کاربر وقتی در تکس باکس نام کلمه ی ((ب)) رو نوشت همه ی اسم هایی که با ((ب)) شروع میشن داخل گرید نمایش داده بشن
حالا میخوام وقتی در نام خانوادگی هم (س) وارد کرد همه ی نام هایی که با ((ب)) شروع میشوند + همه ی نام های خانوادگی که با ((س)) شروع میشن داخل گرید نمایش داده بشن .
در اینجا تکس باکس شهر محل سکونت خالی هست ... پس نباید در جستجو تاسیر داده بشه .
مهرداد صفا
یک شنبه 22 دی 1392, 17:49 عصر
با سلام.
طبق گفته دوستان سه فیلد رو می تونید با if و ... چک کنید.
مثال:
dataGridView1.DataSource=DB.myTable.Where(row=>TXTName.Text!=""?row.Name.StartsWith(TXTName.Text):true && TXTLast.Text!=""?row.Last.StartsWith(TXTLast.Text):true && TXTCity.Text!=""?row.City.StartsWith(TXTCity.Text):true).ToList()
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.