PDA

View Full Version : یک سئوال درباره datagrid



hossein.e
یک شنبه 30 مرداد 1384, 09:40 صبح
اول از همه با عرض معذرت واقعا هیچ تایپیکی مشکل منو حل نکرد

من دو جدول در اکسس طراحی کردم که در یک فیلد مشترک هستند جدول اول را در یک datagrid
قرار داده ام و می خواهم هر وقت کاربری یک رکورد از این datagrid را کلیک کرد اطلاعات متناظر با فیلد مشترک بین دو جدول از جدول دوم خوانده شود و در یک datagrid دیگه نمایش داده شود
این کار را با query انجام داده ام اما مشکل اینجاست که نمی توانم اطلاعات datagrid دوم را پاک کرده و مجددا بارگذاری کنم و اطلاعات پشت سر هم در همان datagrid دوم وارد می شوند

لطفا راهنمایی کنید :oops:

omid_Ahmadi
یک شنبه 30 مرداد 1384, 11:27 صبح
بهترین راه اینه که اطلاعات مورد نیازت رو از هر دو جدول وارد DataSet کنی و رابطه اونها رو با DataRelation تعریف کنی. DataGrid دوم رو هم به یک DataView ربط بدی و وقتی فیلد انتخاب شده در گرید اول تغییر کرد با تغییر DataView اطلاعات رو در گرید دوم نمایش بدی.

asilverisis
یک شنبه 30 مرداد 1384, 11:29 صبح
سلام
شما باید هر دو table رو توی یه دیتاست بذاری و بین اونا relation بذاری
بعد datasource رو برای datagrid دوم روی relation تنظیم کنی
اینطوری دیگه حتی یه خط کد هم نیاز نداری خودش همه کارا رو می کنه
یعنی وقتی روی رکوردهای مستر جا به جا بشی رکوردهای detail خودشون متناسب با اون عوض می شن
اگه توضیح بیشتر خواستی در خدمتم ولی مزش به اینه که خودت بری دنبالش

hossein.e
یک شنبه 30 مرداد 1384, 11:47 صبح
من یک relation برقرار کرده ام اما نمی دانم چطور باید آن را به datagrid لینک کنم ؟

لطفا کاملا توضیح دهید

McMilad
یک شنبه 30 مرداد 1384, 12:15 عصر
میشه لطفا بگین چطوری میشه از یه دیتاگرید یه رکورد رو خوند؟ با C#.net

hossein.e
یک شنبه 30 مرداد 1384, 12:44 عصر
حقیقتش رو بخواین من در حال حاضر حضور ذهن ندارم در کدام تایپیک جواب مشکل شما رو دید ه ام اگه عجله دارید یک search کوچولو بکنید انشالله پیدا می کنید

اگه نشد خودم راهنمایت می کنم

hossein.e
یک شنبه 30 مرداد 1384, 12:46 عصر
پیداش کردم

Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
Dim objValue
Dim intRow, intColumn As Integer
intRow = DataGrid1.CurrentCell.RowNumber
intColumn = DataGrid1.CurrentCell.ColumnNumber
objValue = DataGrid1.Item(intRow, intColumn)
End Sub

خودم امتحان کردم مطمئن باش کار می کنه

سار
یک شنبه 30 مرداد 1384, 19:10 عصر
بهترین راه اینه که اطلاعات مورد نیازت رو از هر دو جدول وارد DataSet کنی و رابطه اونها رو با DataRelation تعریف کنی. DataGrid دوم رو هم به یک DataView ربط بدی و وقتی فیلد انتخاب شده در گرید اول تغییر کرد با تغییر DataView اطلاعات رو در گرید دوم نمایش بدی.

فکر میکنم منطور دوستمون تقریبا چنین چیزی باشه.
البته این به C# هست.
درسته؟


.........
.........
.........
ds.Tables.Add().TableName="tblRequest";
ds.Tables.Add().TableName="tblRequestDetails";

daMaster.Fill(ds.Tables[0]);
daDetails.Fill(ds.Tables[1]);

DataRelation dr = new DataRelation("drMasterDetails",ds.Tables[0].Columns["RequestID"],
ds.Tables[1].Columns["RequestID"]);
ds.Relations.Add(dr);
grdMaster.DataSource=ds;
grdMaster.DataMember=ds.Tables[0].TableName.ToString();
grdDetails.DataSource=ds;
grdDetails.DataMember="tblRequest.drMasterDetails";
.........
.........
.........

hossein.e
دوشنبه 31 مرداد 1384, 17:05 عصر
فکرتون کاملا درست و کدتون عالی بود متشکرم دوست من

-----------------------------------------
زندگی سرگذشت درگذشت آرزوهاست , زندگی افق آرزوهاست