PDA

View Full Version : سوال: دستور Like در Linq



hedi
پنج شنبه 11 تیر 1388, 21:42 عصر
با سلام به دوستان
من یک Linq To SQL در برنامه خود Add کردم بعد جدول Member را در آن انداختم.
سپس در فرم خود یک DataGridView گذاشتم با یک TextBox قصد من این بود که وقتی در Textbox چیزی وارد می شود در رویداد KeyUp آن کد مربوطه به جستجو Like با استفاده از دستورات Linq بنویسم و این کار را هم کردم اما وقتی از like استفاده می کنم هیچ رکوردی را در Grid من نمایش نمی دهد در حالی که Select معمولی یا با Where پارامتر مستقیم می دهم رکورد برمی گرداند این هم کد من :
Dim Bank As New DataBaseDataContext
Dim Query = From TMember In Bank.Members Select TMember.Address, TMember.MCode, TMember.MName, TMember.Organ, TMember.Tel Where MCode Like "'%" & TextBox1.Text & "%'" Order By MCode
DataGridView1.DataSource = Query
لطفا کمک کنید خیلی نیاز دارم این مسئله را بدانم

Ali_Mor
پنج شنبه 11 تیر 1388, 23:52 عصر
به جای % از * استفاده کن

hedi
جمعه 12 تیر 1388, 14:10 عصر
از علامت * هم استفاده کردم باز هم جواب نداد انگار در Linq دستور Like و Between دیگر مورد استفاده قرار نمی گیرند چون من برای جستجو به صورت Like پارامتر StartWith را پیدا کردم آن هم فقط برای رشته ها جواب می دهد با این اوصاف و تفاسیر اگر کسی از دوستان آشنایی با طرز کار این دستورات در Linq دارند تقاضا دارم مساعدت لازم را در امر یادگیری این مقوله بفرمایند تا از اطلاعات آن ها بهره مند شویم

mohm_1
چهارشنبه 24 تیر 1388, 09:18 صبح
Dim q = From t In db.Employees Where t.LastName Like prefixText & "%" Select t.LastName

در صورتی که از داده nvarchar استفاده می کنی به شکل زیر دقت کن


_ Dim pymankarans = From p In db.pymankarans
_ Where p.lname Like"N%" + TextBoxfindname.Text + "%"
Select p
ویا


_ Dim pymankarans = From p In db.pymankarans
_ Where p.lname.StartsWith(TextBoxfindname.Text)
Select p

peyman68_2005
یک شنبه 13 شهریور 1390, 19:34 عصر
شما به راحتی میتونی ازسه دستور startswith , contain,endswith استفاده کنی که همون کار like رو انجام میدن اما با انعطاف بیشتر .یه نمونه کامل میزارم دوستان مشاهده کنن که تو پروژه خودم استفاده کردم
موفق باشین



try

{



var q = (from T in bank.students



where T.name.Contains(textBox3.Text) &&

(T.tarikhvorood >

DateTime.Parse(maskedTextBox2.Text) && T.tarikhvorood < DateTime.Parse(maskedTextBox3.Text))



select T);

dataGridView1.DataSource = q;

dataGridView1.Columns[0].HeaderText =

"کد سیستمی";

dataGridView1.Columns[1].HeaderText =

"نام";

dataGridView1.Columns[2].HeaderText =

"نام خانوادگی";

dataGridView1.Columns[3].HeaderText =

"نام پدر";

dataGridView1.Columns[4].HeaderText =

"شماره ملی";

dataGridView1.Columns[5].HeaderText =

"تاریخ تولد";

dataGridView1.Columns[6].HeaderText =

"تلفن همراه";

dataGridView1.Columns[7].HeaderText =

"شماره قرآن آموز";

dataGridView1.Columns[8].HeaderText =

"آدرس";

dataGridView1.Columns[9].HeaderText =

"تاریخ ورود";

}



catch

{

}



برنامه نویسی یعنی تمرین و ایده