Vb.net 从三个表中读取数据集并将所选行放入printReport(ds)函数

Vb.net 从三个表中读取数据集并将所选行放入printReport(ds)函数,vb.net,ado.net,Vb.net,Ado.net,获取这三个数据集并将其放入一个数据集中以用于printReport(ds)函数的正确方法是什么?我的数据集做得不对吗?我只需要使用一个吗?我应该如何着手修复此代码 Private Sub cmdPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrint.Click Dim cmd As New SqlCommand("Select CustomerName, ShipA

获取这三个数据集并将其放入一个数据集中以用于printReport(ds)函数的正确方法是什么?我的数据集做得不对吗?我只需要使用一个吗?我应该如何着手修复此代码

Private Sub cmdPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrint.Click 

   Dim cmd As New SqlCommand("Select CustomerName, ShipAddress1, ShipAddress2, ShipCity, ShipToState, ShipToZip FROM Customers Where CustomerID = @CustomerID", con)
     cmd.Parameters.Add("@CustomerID", SqlDbType.VarChar).Value = cboCustomer.Text

    Dim cmd1 As New SqlCommand("Select * from LineTable where ID = @ID", con)
     cmd1.Parameters.Add("@ID", SqlDbType.Int).Value = NextID

    Dim cmd2 As New SqlCommand("Select * FROM HeaderTable where ID = @ID", con)
     cmd2.Parameters.Add("@ID", SqlDbType.Int).Value = NextID

        Dim ds As New DataSet()


        Dim adap As New SqlDataAdapter(cmd) 
        Dim adap1 As New SqlDataAdapter(cmd1)
        Dim adap2 As New SqlDataAdapter(cmd2)

    If con.State = ConnectionState.Closed Then con.Open()
        adap.Fill(ds, "Customers")
        adap1.Fill(ds, "LineTable")
        adap2.Fill(ds, "HeaderTable")
    con.Close()

    PrintReport(ds)

end sub


 Private Sub printReport(ByVal ds As DataSet)
    Dim newprintReport As New PrintReport(ds)
    newprintReport.ShowDialog()
 End Sub

每个查询都不需要自己的数据集—与名称相反,数据集包含的是数据表,而不是数据—因此一个数据集包含三个表听起来就像您正在尝试的那样ask@Plutonix所以我对我的示例的新编辑应该有效吗?@puropoix我尝试了这个,数据集只接收客户数据表,另外两个表示我出错,因为对象引用未设置为对象的实例