PDA

View Full Version : سوال: چطور از جدول به وجود آمده از یک کوئری دوباره استفاده کنم؟



hamedjonjon
یک شنبه 25 تیر 1391, 15:58 عصر
با سلام خدمت دوستان گرامی
من میخواستم یک کوئری اجرا کنم و بعد بر روی dataTable بدست آمده یک کوئری دیگه اجرا کنم.
مثلا
کدی که من استفاده میکنم به این صورت است:

stringConnection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ArCiveDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection connect = new SqlConnection(stringConnection);
connect.Open();
string query = "Select * FROM PersonalRegister as pr INNER JOIN DonateEnv as de ON pr.Code = de.Code";
SqlDataAdapter dat = new SqlDataAdapter(query, connect);
dat.SelectCommand.CommandType = CommandType.Text;
DataTable dt = Obj_DAL.ReturnTable(dat);


حال می خوام بر روی dt یک کوئری دیگه اجرا کنم
چطور در رشته query اون رو قرار بدم؟

hamedjonjon
یک شنبه 25 تیر 1391, 16:33 عصر
هیچ کدام از اساتید محترم نمی خوان من رو راهنمایی کنن؟

ashe405
یک شنبه 25 تیر 1391, 17:05 عصر
سلام یه راه نسبتا غیر منطقی اش اینه که یه جدول با همان فیلدهای جدول بدست اومده از کوری بسازی در دیتا بیست و بعد همون جدول dt رو کلا درج کنی با یک کوری و بعد بیای از اون جدول بو جود اومده کوری جدیدتو استفاده کنی

hamedjonjon
یک شنبه 25 تیر 1391, 17:10 عصر
نه این روش اصلا اصولی نیست و من هم نمی خوام یه جدول موقت رو توی دیتابیسم ذخیره کنم
راه بهتری نیست؟

ashe405
یک شنبه 25 تیر 1391, 17:14 عصر
نمی تونین کوری تودرتو بنویسین

veniz2008
یک شنبه 25 تیر 1391, 17:24 عصر
سلام، شما میتونی از select های تودرتو استفاده کنی، یه نمونه کد واست میزارم. به اینصورت عمل میکنه: اول select داخلی انجام میشه و همه رکوردهایی که فیلد وضعیت( فیلد status) اونها برابر 1 هستن رو پیدا میکنه،حالا جوابی که پیدا میکنه به عنوان ورودی select اول استفاده میشه. select اول هم میگه فقط نام و فامیل رکوردهایی رو که پیدا کردی نشون بده.

select FirstName,LastName from student where status
in(select status from student where status = 1)
موفق باشی.

hamedjonjon
یک شنبه 25 تیر 1391, 17:41 عصر
متشکرم
مشکلم حل شد
به کلی select های تو در تو رو فراموش کرده بود