ببينيد ، من كدم رابه اين ترتيب نوشته ام .
Dim daTest AsNew SqlDataAdapter
Dim cnTest AsNew System.Data.SqlClient.SqlConnection
Dim dstest AsNew DataSet
Dim strSql AsString
Dim strCn AsString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=""DB-university"";Data Source=""user-cf89685757"""
Dim sqlCmd AsNew SqlCommand
cnTest.ConnectionString = strCn
Dim myDT AsNew DataTable
Try
cnTest.Open()
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.Source)
EndTry
strSql = "SELECT u_stude.Id as [شماره دانشجويي],name as [نام],family as [نام خانوادگي],u_stude.vorudi as [ورودي],u_stude.avg as [معدل],u_selectunit.Idterm as [ترم],coursename as [نام درس],score as نمره],email as [ايميل] FROM u_stude,u_selectunit,u_course,u_term,u_voroodi "
strSql = strSql + " WHERE u_stude.Id = u_selectunit.Id "
strSql = strSql + " AND u_selectunit.courseno = u_course.courseno "
strSql = strSql + " AND u_term.Idterm = u_selectunit.Idterm "
strSql = strSql + " AND u_voroodi.vorudi = u_stude.vorudi "
If tbId.Text <> "" Then
strSql = strSql + " AND u_stude.Id = '" + tbId.Text + "' "
EndIf
If tbname.Text <> "" Then
strSql = strSql + " AND name like N'%" + tbname.Text + "%'"
EndIf
If tbfamily.Text <> "" Then
strSql = strSql + " AND family like N'%" + tbfamily.Text + "%'"
EndIf
IfCStr(cbterm.SelectedValue) <> "" Then
Dim strSlctTerm AsString
strSlctTerm =
CStr(cbterm.SelectedValue)
If strSlctTerm <> "" Then
strSql = strSql + " AND Idterm = '" + strSlctTerm + "'"
EndIf
EndIf
IfCStr(cbvorudi.SelectedValue) <> "" Then
Dim strSlctVorudi AsString
strSlctVorudi =
CStr(cbvorudi.SelectedValue)
If strSlctVorudi <> "" Then
strSql = strSql + " AND Idvorudi = '" + strSlctVorudi + "'"
EndIf
EndIf
sqlCmd.CommandText = strSql
sqlCmd.Connection = cnTest
daTest.SelectCommand = sqlCmd
Try
daTest.Fill(dstest)
daTest.Fill(myDT)
Dim pos AsInteger = Me.BindingContext(dstest.DefaultViewManager).Positio n
Me.BindingContext(dstest.DefaultViewManager).RemoveA t(pos)
myDT.Rows(pos).Delete()
dgdisplay.Refresh()
dgdisplay.DataSource = dstest.DefaultViewManager
dgdisplay.DataSource = dstest.Tables(0)
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.Source)
EndTry
اما براي pos در هر شرايطي مقدار 0 را برميگرداند و بر روي خط بنفش خطاي collection itself is not modifiable را مي دهد .
و وقتي كه سطر بنفش را comment ميكنم و اجازه مي دهم سطر myDT.Rows(pos).Delete اجرا شود بدون خطا تمام مراحل سپري مي شود و سطري حذف نمي شود.