2

我的 Windows 窗体应用程序中有一个 UltraGrid,它必须有两个波段。通过使用以下代码,我能够毫无问题地设置父乐队:

        Try
            con.Open()
            da = New SqlDataAdapter("SELECT o.OJTID, o.Surname + ', ' + o.FirstName + ' ' + o.MiddleName AS FullName, t.TotalGrade FROM tblOJTs o INNER JOIN tblTGrades t ON o.OJTID = t.OJTID", con)
            da.Fill(ds, "tblOGrades")
            con.Close()
        Catch ex As Exception
            MsgBox("Error connecting to databe.", MsgBoxStyle.Critical)
            MsgBox(ex.ToString)
            con.Close()
            Exit Sub
        End Try

        UltraGrid1.DisplayLayout.ViewStyle = Infragistics.Win.UltraWinGrid.ViewStyle.MultiBand
        UltraGrid1.DataSource = ds.Tables("tblOGrades")

现在的事情是,我不知道如何设置儿童乐队的数据源。由于分层数据源功能,我没有遇到 UltraWebGrid 的此类问题,但我认为它不适用于 WinForms。我知道你们会帮助提前谢谢:)

4

1 回答 1

4

您需要使用与第一个表相关的数据填充 DataSet 中的另一个 DataTable。之后,您应该定义两个数据表之间的关系,最后将 UltraWinGrid 的 DataSource 设置为 DataSet 本身,而不是单个 DataTable。

例如:

con.Open()
da = New SqlDataAdapter("SELECT o.OJTID, o.Surname ....", con)
da.Fill(ds, "tblOGrades")
da = new SqlDataAdapter("SELECT .related data....", con)
da.Fill(ds, "tblRelated")
ds.Relations.Add("Grades_Relation", _
   ds.Tables("tblOGrades").Columns("OJTID"), _
   ds.Tables("tblRelated").Columns("relatedID"))
con.Close()

....

UltraGrid1.DataSource = ds
于 2013-03-09T18:22:36.833 回答