PDA

View Full Version : مبتدی: سوال :نمایش فیلدهای دو جدول مرتبط در یک گریدوویو



misagh1370
دوشنبه 10 تیر 1392, 16:24 عصر
با عرض سلام و ادب خدمت همه ی مهندسین گرامی
قبل از هر چیز جا داره که از راهنمایی های همه ی دوستان تشکر و قدردانی کنم.:تشویق:
سوال :پروژه ی من به این صورته که سه جدول دارم.که ارتباط چند به چند بینشون حاکم است.جدول اولم جدول کارمند و جدول دوم جدول شرکت و جدول سوم جدول واسط است که مشخص میکنه کدوم کارمند در چه شرکتی استخدام است در واقع شامل کلید اصلی کدملی کارمند و کلیداصلی کد ملی مدیر شرکت هستش.
حالا مشکل و سوال من اینجاست که وقتی میخوام یه جستجو داشته باشم مثلا براساس نام شرکت ،مشخصات همه کارمندانی که در جدول کارمند هستند رو در گریدویو نشون بده چکار کنم؟البته نام شرکت هم در کنار مشخصات هرکارمند نماش بده.
دوستان خواهشا راهنماییم کنید.
سپاس فراوان

misagh1370
سه شنبه 11 تیر 1392, 11:41 صبح
مهندسین گرامی خواهشا من رو از راهنمایی هاتون بی بهره نگذارید.
خیلی عجله دارم.دوستان لطف کنید اگه اطلاعاتی درین باره دارید کمکم کنین:افسرده:

m.webgard
سه شنبه 11 تیر 1392, 15:30 عصر
سلام
دوست عزیز اینطور که من متوجه شدم شما باید از Join استفاده کنید.
من فرض میکنم ستون های جداول شما بصورت زیر باشه:
جدول Employee
------------------
CodeMelli_Employee
Name_Employee

جدول Company
------------------
CodeMelliManager_Company
Name_Company

جدول EmployeeCompany
------------------
CodeMelliManager_Company
CodeMelli_Employee

با فرض جداول بالا، کد شما بصورت زیر میشه:
SELECT Company.Name_Company, Employee.Name_Employee
FROM EmployeeCompany INNER JOIN
Company ON EmployeeCompany.CodeMelliManager_Company = Company.CodeMelliManager_Company INNER JOIN
Employee ON EmployeeCompany.CodeMelli_Employee = Employee.CodeMelli_Employee
موفق باشید

sinaexample
سه شنبه 11 تیر 1392, 23:08 عصر
البته همچین چیزی رو بدون جدول واسط هم میتونستی بنویسی.
ولی خوب m.webgard کدش رو درست نوشت و میتونی ازش استفاده کنی.
اینجوری هم میتونی بنویسی(با استفاده از دیتا تیبل):
با استفاده از کد پرسنل میاد جستجو میکنه


Public Class Form1
Dim ta_per As New DataSet1TableAdapters.MemberTableAdapter
Dim dt_per As New DataSet1.MemberDataTable

Dim ta_sh As New DataSet1TableAdapters.sherkatTableAdapter
Dim dt_sh As New DataSet1.sherkatDataTable
Dim ta_vaset As New DataSet1TableAdapters.vasetTableAdapter
Dim dt_vaset As New DataSet1.vasetDataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ta_per.Fill(dt_per)
ta_sh.Fill(dt_sh)
ta_vaset.Fill(dt_vaset)
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Dim query = From i In dt_vaset Join l In dt_per On i.code_pr Equals l.m_code Where i.code_pr = TextBox1.Text Join k In dt_sh On i.code_sh Equals k.code_sh
Select New With {.نام = i.code_pr, .نام_خانوادگی = l.m_lname, .نام_شرکت = k.name_sh}
DataGridView1.DataSource = query.ToList
End Sub


End Class

misagh1370
چهارشنبه 12 تیر 1392, 18:34 عصر
دوستان گرامی ممنون از راهنمایی هاتون.:تشویق:

misagh1370
چهارشنبه 12 تیر 1392, 19:25 عصر
sinaexampleعزیز همیشه با راهنماییهاتون خوشحالم مکنین ممنونم
میشه درمورد کدی که در قسمت تکست باکس نوشتی واسم توضیح بدین

sinaexample
چهارشنبه 12 تیر 1392, 22:48 عصر
خواهش میکنم.
احتیاج نیست بابت هربار تشکر یه پست بزنی همون دکمه تشکر و بزنی کفایت میکنه
در رویداد textchange تکست باکس کدی رو نوشتم یعنی هر وقت کلمه داخل تکست باکس تغییر کرد یه کاری رو انجام بده.
یک متغییر تعریف کردم و گفتم بابت هر i داخل دیتاتیبل واسط و هر l داخل دیتاتیبل پرسن که اون دوتا فیلد با هم رابطه دارند جایی که کد برابر باشه با چیزی که تایپ میشه و بابت هر k داخل دیتاتیبل شرکت انتخاب کن نام و نام خانوادگی و نام شرکت رو.
. در پایان هم که دیتاسورس دیتاگریدم رو برابر با همون متغییر قرار دادم
راستش توضیح دادنش یکم سخته . چند بار همین چیزی که نوشتم رو بخون و با کد بالا مطابقت بده تا خودت متوجه بشی.

sinaexample
چهارشنبه 12 تیر 1392, 22:52 عصر
البته این موضوع رو یادم رفت بگم که اگه میخوای این کدها برات کار کنه همونطور که قبلا تو اون تایپیک دیگه بهت گفتم اول باید دیتاست رو درست کنی و جداول رو داخلش بکشی و رابطه بینشون رو هم برقرار کنی. موفق باشی دوست من.

misagh1370
چهارشنبه 12 تیر 1392, 23:06 عصر
sinaexample عزیز کد رو نوشتم و درست شد.ممنون:لبخندساده:

sinaexample
پنج شنبه 13 تیر 1392, 02:03 صبح
خواهش. بازم اگه جایی گیر کردی یا به مشکل خوردی بپرس.

misagh1370
پنج شنبه 13 تیر 1392, 12:59 عصر
sinaexample :
اگه بخوام همین کد جستجو با دیتاتیبل رو بدون ایجاد دیتاست ،یعنی از طریق تعریف در کلاس و فانکشن بنویسم باید چکار کنم؟
استادم خیلی تاکید در استفاده از کلاس ها داره.

sinaexample
پنج شنبه 13 تیر 1392, 13:50 عصر
باید بری سراغ برنامه نویسی شی گرا یا همون ORM
خیلی توضیح و تفسیرش زیاده. یه سرچی تو اینترنت یا تو همین فروم بزن یه مطالبی خودت بخون و یاد بگیر بعدش هرجا سوال داشتی بپرس.:لبخندساده:

misagh1370
پنج شنبه 13 تیر 1392, 19:33 عصر
دوست عزیز من با قسمت شی گراییش یعنی با تعریف کلاس و اینکه چطور به متغییر که به صورت عمومی تعریف شده در برنامه فضا اختصاص بدم و کلا چیزایی که تئوری خوندیم مشکلی ندارم. من با اینکه چطور این دیتاست رو که از طریق design ساختمش رو بیام واسه دیتا تیبلش کلاس تعریف کنم و فانکشنش رو تو برنامه استفاده کنم مشکل دارم.:اشتباه::متفکر: