Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > DataTableHelp > 数据增删改查 >
Join

Join将两个表根据关联字段合并成一个新表。如果A表和B表的关联字段是一对多的关系,结果也将呈现多种组合结果。

语法:

Join(addDataTable,addlinkCols,sourceLinkCols,addCols)

参数说明

名称 说明
addDataTable 必填项,DataTableHelp类型,新加字段的关联表。
addlinkCols 必填项,字符串类型,新表的关联字段。这里如果有多个关联字段的话,每个字段名之间用“,”隔开,例如:ID,SubID。
sourceLinkCols 可选项,字符串类型,源表的关联字段。如果省略为空的话,则默认与上面新表的关联字段一样。如果字段名不一样则需要设置一一对应的字段名。格式也同addlinkCols参数一样,每个字段名之间用“,”隔开。
addCols 可选项,字符串类型,新表要添加的字段名,如果有多个关联字段的话,每个字段名之间用“,”隔开。默认为空,表示将除了关联字段外的所有字段都添加了。

为了演示数据处理的关系,我们专门做了一个Demo。参考“数据查询Demo”中的演示效果。

Vb.Net
Public Sub btnJoin_Click(sender As Object,e As  System.EventArgs)
    '如果最后一个参数什么都不指定,则添加tblMain2中所有字段
    Dim dt As DataTableHelp= tblMain1.DataTableHelp.Join(tblMain2.DataTableHelp,"客户","客户","")
    tblResult.DataSource=dt '将结果绑定到tblResult中并显示出来
End Sub
Public Sub btnJoin2_Click(sender As Object,e As  System.EventArgs)
    '只添加指定的几个列
    Dim dt As DataTableHelp=tblMain1.DataTableHelp.Join(tblMain2.DataTableHelp,"客户","客户","客户名称,客户联系人")
    tblResult.DataSource=dt '将结果绑定到tblResult中并显示出来
End Sub
Public Sub btnJoin3_Click(sender As Object,e As  System.EventArgs)
    '先重新填充tblMain1和tblMain2表
    tblMain1.Fill("select * from 订单信息 where 业务员='业务员01' and 产品='产品02'",db,True,True)
    tblMain2.Fill("select * from 客户付款记录",db,True,True)
    '如果最后一个参数什么都不指定,则添加tblMain2中所有字段
    Dim dt As DataTableHelp= tblMain1.DataTableHelp.Join(tblMain2.DataTableHelp,"客户","客户","")
    tblResult.DataSource=dt '将结果绑定到tblResult中并显示出来
End Sub

C#
public void btnJoin_Click(object sender, System.EventArgs e)
{
    // 如果最后一个参数什么都不指定,则添加tblMain2中所有字段
    DataTableHelp dt = tblMain1.DataTableHelp.Join(tblMain2.DataTableHelp, "客户", "客户", "");
    tblResult.DataSource = dt; // 将结果绑定到tblResult中并显示出来
}
public void btnJoin2_Click(object sender, System.EventArgs e)
{
    // 只添加指定的几个列
    DataTableHelp dt = tblMain1.DataTableHelp.Join(tblMain2.DataTableHelp, "客户", "客户", "客户名称,客户联系人");
    tblResult.DataSource = dt; // 将结果绑定到tblResult中并显示出来
}
public void btnJoin3_Click(object sender, System.EventArgs e)
{
    // 先重新填充tblMain1和tblMain2表
    tblMain1.Fill("select * from 订单信息 where 业务员='业务员01' and 产品='产品02'", db, true, true);
    tblMain2.Fill("select * from 客户付款记录", db, true, true);
    // 如果最后一个参数什么都不指定,则添加tblMain2中所有字段
    DataTableHelp dt = tblMain1.DataTableHelp.Join(tblMain2.DataTableHelp, "客户", "客户", "");
    tblResult.DataSource = dt; // 将结果绑定到tblResult中并显示出来
}