PDA

View Full Version : سوال: نمایش 2 جدول در دیتا گرید



amir_3530
دوشنبه 15 خرداد 1391, 20:57 عصر
سلام
چجوری میشه 2 تا جدول از یک دیتابیس را در دیناگرید نشون بدم؟
ممنون

Mahyar.FF
دوشنبه 15 خرداد 1391, 21:24 عصر
اگه منظورتون رو درست متوجه شده باشم، اولین موردی که باید در نظر گرفت، اینه که 2 تا جدول باید ستونهایی متناظر داشته باشند.
اگر اینطور باشه، توسط SqlDataAdapter اطلاعات اولین جدول رو بخون و در یک DataTable بریز، سپس با استفاده از SqlDataReader جدول دوم رو بخون و مقادیر رو در یک حلقه while به DataTable اول اضافه کن.
(البته در صورتیکه هر دو جدول از لحاظ ساختار عین هم باشند، می تونی اطلاعات هر دو رو در دو DataTable جداگانه بریزی و بعد با استفاده از متُد merge دو DataTable رو با هم تلفیق کنی و سپس در GridView نشون بدی)

amir_3530
دوشنبه 15 خرداد 1391, 21:38 عصر
اگر نمونه کد دارید بزارید.ممنون

nahidmoh
دوشنبه 15 خرداد 1391, 22:09 عصر
سلام
SqlConnection con = new SqlConnection("Data Source=ORBIT-PC;Initial Catalog=kitchen;Integrated Security=True");
string sqlcmd="select * from tbl1,tbl2";
DataTable dt = new DataTable();
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlcmd, con);
da.Fill(dt);
con.Close();
GridView1.DataSource = dt;
GridView1.DataBind();

barnamenevisforme
دوشنبه 15 خرداد 1391, 22:22 عصر
سلام
تلفیق جدول ها با هم چندین حالت داره.
همون طور که دوستمون گفتن اکه هر دو جدول ساختاری شبیه داشته باشن:
جدول1+جدول2 یا
جدول1
+جدول 2
در صورتی که با هم ساختار مشابهی نداشته باشن:
جدول1+جدول2 با اطلاعات تکراری
یا جدول 1 با اطلاعات تکراری +جدول 2
خلاصه سرتون رو درد نیارم ،حالت هایی که به وجود میاد متفاوته.
به جای اینکه کد بذارم یه روش راحتتر بهتون پیشنهاد میکنم.در قسمت datasource/dataset designer کلیک راست کنید،addtableadapter رو انتخاب کنید،query builder رو فعال کنید،جدول هایی که میخواید با هم تلفیق کنید رو اضافه کنید.اگر در بین دو جدول رابطه ای موجوده روی اون کلیک راست کنید،هر کدوم رو که میخواید اطلاعات تکراری نداشته باشه رو به عنوان return all rows from انتخاب کنید.
الان دیگه شما یه جدول تلفیق شده از جدول های مورد نظرتون دارید.
اگه بخواید دو تا جدول رو به صورت یکی بالا و یکی پایین تلفیق کنید که باید از merge استفاده کنید.

nahidmoh
دوشنبه 15 خرداد 1391, 23:18 عصر
خوب اگه جدولاشون با نام فیلد مشترک بود میتونن با استفاده از As یک نام اختصاصی بدن اگه نخوان تلفیق بشه
select tb1.id as a, tb2.id as b from tb1,tb2
اگه ساختارشون یکی بود و خواستن همه رو تبدیل به یک جدول کنن میتونن از union all استفاده کنن
select tb.id from (select id,name from tb1 union all select id,name from tb2)as tb

amir_3530
سه شنبه 16 خرداد 1391, 03:36 صبح
ممنون دوستان