Во всех книгах пишется про DataSet что он может отображать в разных ДатаГридах таблици с ключевыми правилами, но вот както не получается. Есть две таблицы на SQL одна содержит ID с ключевыми полями и вторая содержит ID с такими же ключевыми полями собственно по ним и происходит связь между записями, далее предложенный код авторами: Dim cn As SqlConnectionDim cmdGetAll As SqlCommandDim addAllInfo As SqlDataAdapterDim m_dsWork As DataSetcn = New SqlConnection("Строка подключения к базе")addAllInfo = New SqlDataAdapter()m_dsWork = New DataSet()cmdGetAll = New SqlCommand("spGetAll", cn)cmdGetAll.CommandType = CommandType.StoredProcedure addAllInfo.SelectCommand = cmdGetAll addAllInfo.TableMappings.Add("Table", "tblMain") addAllInfo.TableMappings.Add("Table1", "tblMain_Child") cn.Open() addAllInfo.Fill(m_dsWork) cn.Close() Dim colSSNP, colSSNE As DataColumncolSSNP = m_dsWork.Tables("tblMain").Columns("id") colSSNE = m_dsWork.Tables("tblMain_Child").Columns("id") 'Создаем первичные ключиDim arPersKey(1) As DataColumnDim arEmplKey(1) As DataColumnarPersKey(0) = colSSNP arEmplKey(0) = colSSNE m_dsWork.Tables("tblMain").PrimaryKey = arPersKey Dim fkSSN As ForeignKeyConstraintfkSSN = New ForeignKeyConstraint("SSNForKey", colSSNP, colSSNE)fkSSN.DeleteRule = Rule.Cascade m_dsWork.Tables("tblMain_Child").Constraints.Add(fkSSN) DataGrid1.DataSource = m_dsWork DataGrid1.DataMember = "tblMain" DataGrid2.DataSource = m_dsWork DataGrid2.DataMember = "tblMain_Child" Второй DataGrid выводит все записи, а должен выводить только записи соответствующие ключевому полю ID из tblMain, Может кто сталкивался???
Ответить
|