PDA

View Full Version : زدن کوئری روی کوئری



salehsam
یک شنبه 24 آذر 1392, 09:55 صبح
سلام دوستان
میخوام یه کوئری رو با چندین شرط فیلتر کنم
مثلا براساس جنسیت، سن، محل زندگی و ...
بدین صورت که برای هرکدوم یه کمبو باکس قرار میدم و با تغییر هر کدوم کوئری تغییر کنه
میتونم دونه به دونه تغییرات رو اعمال کنم یعنی کمبو جنسیت که تغییر کنه یا کمبو ...
ولی میخوام وقتی جنسیت عوض شد همون جور بمونه و با تغییر کمبو بعدی دوباره از نو کوئری نزنه بلکه از اینهایی که انتخاب شده دوباره کوئری بزنه:متفکر:
ممنون میشم کمک کنین

sorena2000
یک شنبه 24 آذر 1392, 12:16 عصر
ALTER PROCEDURE [dbo].[SearchKodak]

@Name NVARCHAR(20)=NULL,
@Family NVARCHAR(20)=NULL,
@codmeli NVARCHAR(10)=NULL

AS

BEGIN
SELECT
*
FROM TBRegisterKodak tk
WHERE
(@Name IS NULL OR tk.Names LIKE '%' + @Name + '%')

AND (@Family IS NULL OR tk.Family LIKE '%' + @Family + '%' )
AND (@codmeli IS NULL OR tk.Codmeli LIKE '%' + @codmeli + '%' );





این پروسیجر فکر کنم چیزی که بخوای رو انجام بده
هر کدوم از فیلدها رو که وارد کنی جستجو بر اساس اون انجام میشه و با وارد کردن فیل بعدی از بین جستجوی قبلی جستجو می کنه

salehsam
یک شنبه 24 آذر 1392, 12:53 عصر
ممنون sorena2000 (http://barnamenevis.org/member.php?69912-sorena2000) جان
ولی من با EF کار میکنم
نمونه کوئری من بدین صورته


int gender = Convert.ToInt32(cmb_gender.SelectedIndex);
var query = from p in db.tbl_person
where p.per_gender == gender
select p;

ممنون میشم در مورد EF هم کمک کنین

sorena2000
یک شنبه 24 آذر 1392, 14:42 عصر
از طریق پروسیجر هم میتونید وصل بشید به EF مشکلی ندارید به نظرم . به این لینک (http://www.entityframeworktutorial.net/data-read-using-stored-procedure.aspx)1 نگاه بندازید امیدوارم که کمکتون بکنه . کلا در باره EF هست .

salehsam
یک شنبه 24 آذر 1392, 16:58 عصر
ممنون دوست من
با ذخیره و نمایش اطلاعات از طریق EF مشکلی ندارم
مشکل من اینه که کوئری رو توی یه داده ای ذخیره کنم و دوباره روش کوئری بزنم
آیا این کار شدنیه؟

khokhan
یک شنبه 24 آذر 1392, 17:09 عصر
ممنون دوست من
با ذخیره و نمایش اطلاعات از طریق EF مشکلی ندارم
مشکل من اینه که کوئری رو توی یه داده ای ذخیره کنم و دوباره روش کوئری بزنم
آیا این کار شدنیه؟
احتمالا منظورتون بایستی چیزی شبیه این بایستی باشه ::لبخند:


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;