PDA

View Full Version : سوال: استفاده از دو DataTable در یک DataGridView



Mohsen.4887
سه شنبه 30 آبان 1391, 01:42 صبح
سلام خدمت دوستان عزیز. وقتتون بخیر ممنون میشم اگه منو راهنمایی کنید. من دو تا جدول دارم که تو یکی از جدول ها مشخصات دانشجویان قرار داره و توی اون یکی جدول لیست رشته ها قرار داره.
توی جدول دانشجوها یک فیلد برای نگهداری کد رشته دانشجو قرار داره حالا کاری که من می خوام انجام بدم اینه که توی یک دیتا گرید مشخصات دانشجویان لیست بشه و در ستون مربوط به رشته دانشجو لیست تمام رشته ها بیاد و به طور پیشفرض رشته دانشجو انتخاب شده باشه.

من خودم هر کار می کنم نمیشه. نمیدونم کجا دارم اشتباه میکنم.
دوتا دیتاتیبل میسازم یکی رو با دانشجوها پر می کنم و اون یکی رو با رشته ها و دیتا سورس مربوط به Datagird رو میزارم دیتاتیبل دانشجویان و دیتاسورس DataGridComboBox رو میزارم دیتاتیبل رشته ها.
کدها رو براتون میزارم.

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=dbUniversity;Integrated Security=True");
SqlCommand cmd = new SqlCommand("select * from tblStudents", con);
DataTable tblStu = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(tblStu);

dgvEditStu.DataSource = tblStu;

SqlCommand cmdReshte = new SqlCommand("select reshteName,reshteID from tblReshte", con);
DataTable tblReshte = new DataTable();
SqlDataAdapter daReshte = new SqlDataAdapter(cmdReshte);
daReshte.Fill(tblReshte);

stuReshte.DataSource = tblReshte;
stuReshte.DisplayMember = "reshteName";
stuReshte.ValueMember = "reshteID";


مقدار DataPropertyName مربوط به DataGridViewComboBoxColumn رو هم برابر ReshteID گرفتم.
با تشکر منتظر راهنماییتون هستم

abcd_a
سه شنبه 30 آبان 1391, 08:13 صبح
سلام
ابتدا بین جداول بانک رابطه ایجاد کن به وسیله کلید اصلی و کلید خارجی به عنوان مثال شماره دانش آموزی تو جدول دانش آموز کلید اصلی و تو جدول رشته کلید فرعی یا خارجیه
بعد تو دستور Select باید جدول ها با هم join کنی
نیاز به ادغام دو تا دیتا تیبل نیست
جستجو کنی مثال های زیادی تو همین سایت هست که می تونه بهتون کمک کنه
موفق باشی

hashemi85sep
سه شنبه 30 آبان 1391, 11:35 صبح
سلام دوست عزیز
همونطور که abcd_a گفتن نیازی به ادغام دوتا دیتا تیبل نیست . این مربروط به دستورات sql میشه که باید توی دستور select این کار رو انجام بدی
...