PDA

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



asrah6
یک شنبه 21 مهر 1392, 15:43 عصر
سلام
من دارم یک برنامه برای مدرسه و ثبت نمرات می نویسم که از استورد پروسیجر و ado برای ارتباط با بانک اطلاعاتی استفاده می کنم برای نمایش اطلاعات در دیتاگرید یک sp به صورت زیر نوشته ام.

create proc joinstudentPayeClassDarsMountGrade1
@TID int
as
select TblStudent.IDSt,TblStudent.FName,TblStudent.LName,
TblStudent.FatherName,TblStudent.BirthDay,TblStude nt.Pic,
TblStudent.IDPaye,TblStudent.CLID,
CLassName,PayeName,TName,TblGrade.TID,Nomre,TblDar s.DID,DName
from TblStudent
INNER JOIN TblGrade ON TblStudent.IDSt=TblGrade.IDSt
INNER JOIN TblClassName ON TblStudent.CLID=TblClassName.CLID
INNER JOIN TblPaye ON TblStudent.IDPaye=TblPaye.IdPaye
INNER JOIN TblMount ON TblMount.TID=TblGrade.TID
INNER JOIN TblDars ON TblGrade.DID=TblDars.DID
where TblGrade.TID = @TID
و دیتاگرید را به آن بایند کرده ام

SqlDataAdapter da = new SqlDataAdapter("joinstudentPayeClassDarsMountGrade", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.AddWithValue("@TID", CmbTerm.SelectedValue);
DataTable Karname = new DataTable();
da.Fill(Karname);
dataGridView1.DataSource = Karname;
ولی اطلاعات را داخل گرید به صورت عکس زیر نشان می دهد
هر کاری می کنم تا اطلاعات هر دانش آموز را فقط در یک ردیف دیتاگرید نمایش بدهم نمی شود مثلا نام و نام خانوادگی و نام پدر و تاریخ تولد و پایه و ترم و درس ها و نمره هاو... از هر دانش آموز را فقط در یک ردیف نمایش دهد نمی توانم لطفا کمک کنید ایده یا سورس کدی یا راهنمایی تا این مشکلم را حل کنم.
با تشکر قبلی و بعدی

asrah6
یک شنبه 21 مهر 1392, 20:35 عصر
25 دفعه این تاپیک مشاهده شده ولی دریغ از یک پاسخ و راهنمایی
با GROUP BY فقط تونستم اسامی یکسان دانش آموزان را زیر هم نشان دهم که مرتب باشد ولی نشد مشخصات و درس و نمره و ... هر دانش آموز را کلا در یک سطر نشان دهم .
لطفا کمکم کنید .با تشکر

pedramfj
یک شنبه 21 مهر 1392, 21:14 عصر
سلام
برای شرط گذاشتن در آخر کد ها از دستور زیر استفاده کنید.


where TblStudent.IDSt= @TID

امید وارم مشکل حل شود...
در ضمن مطمئن هستید که تکه کد زیر درست هستش؟


INNER JOIN TblMount ON TblMount.TID=TblGrade.TID
INNER JOIN TblDars ON TblGrade.DID=TblDars.DID

pedramfj
یک شنبه 21 مهر 1392, 22:10 عصر
برای نمایش اطلاعات چندین جدول در یک ردیف(دراری ارتباط) از دستور JOIN استفاده می شود .پس کار شما تا اینجا مشکلی نداره.به نظر من مشکل در نحوه join کردن شما هستش.
شما بیایید از ادغام 2 تا جدول شروع کنید و اطلاعات را نمایش دهید و در صورت درست بودن اطلاعات تعداد جدول ها را افزایش دهید.(تا متوجه خطا شوید)
به نظر من تنها راه همینه چون راستش کسی به غیر از شما از جداول و ارتباط های بین آنها سر در نمیاره(نه که سر در نیاره . حوصله می خواهد.... )
امیدوارم موفق باشد

aslan
یک شنبه 21 مهر 1392, 23:20 عصر
سلام
در مورد CrossTab در Sql جستجو کنید