PDA

View Full Version : حذف رکوردهای یک جدول وابسته به جدول اصلی



fereshte22
دوشنبه 19 شهریور 1386, 13:02 عصر
سلام
من یه جدول سفارشات دارم با کلید اصلی number و یه جدول جزئیات سفارش که یکی از فیلدهای اون idsefaresh است که مقدارش با مقدار number یکی است.
ودر واقع برای ارتباط دو جدول است.
من در گرید ویو و با کد زیر رکوردهای جدول سفارشات را حذف میکنم.


ProtectedSub AuthorsGridView_RowCommand(ByVal sender AsObject, ByVal e As GridViewCommandEventArgs) Handles AuthorsGridView.RowCommand
Dim chkRemove As WebControls.CheckBox
Dim strIDs AsString = ""
Dim boolCheck AsBoolean = False
ForEach gvRow As GridViewRow In AuthorsGridView.Rows
chkRemove = CType(gvRow.FindControl("ChkRemove"), WebControls.CheckBox)
If chkRemove.Checked Then
boolCheck = True
strIDs += AuthorsGridView.DataKeys(gvRow.RowIndex).Value & ","
EndIf
Next
If boolCheck = TrueThen
Dim strSQL AsString = "Delete From sefareshat Where number IN (" & strIDs.Substring(0, strIDs.LastIndexOf(",")) & ")"
Dim Cnn AsNew SqlConnection("Data Source=FERESHTE-BDE62C\SQLEXPRESS;Initial Catalog=ssgshop;Integrated Security=True")
Dim Cmd AsNew SqlCommand(strSQL, Cnn)
Try
Cnn.Open()
Cmd.ExecuteNonQuery()
Catch ex As SqlException
Response.Write(ex.Message.ToString())
Finally
If Cnn.State <> ConnectionState.Closed Then Cnn.Close()
If (Not Cmd IsNothing) Then Cmd.Dispose()
BindGridView()
EndTry
EndIf
EndSub

حالا من میخواهم هر رکوردی که حذف میشود(در واقع هر سفارشی که حذف میشود)
همون موقع رکوردی که در جدول جزئیات سفارش است و مقدار idsefaresh ان با مقدار number یکی است هم حذف میشود.اما هر کاری میکنم نمیشود.
دوستان چه پیشنهادی میدهند؟

Nightbat
دوشنبه 19 شهریور 1386, 13:41 عصر
Cascade Delete مشکل رو حل می کنه. تو Relation بین دو جدول، Cascade Delete رو اعمال کن