C# 在一个中继器中连接两个Nav web服务数据

C# 在一个中继器中连接两个Nav web服务数据,c#,asp.net,linq,web-services,nav,C#,Asp.net,Linq,Web Services,Nav,我正在尝试使用Linq查询连接两个nav web服务数据。但我该怎么做呢。我的代码如下。假设我有客户详细信息及其发票web服务。我希望这一页的细节。请给我解决方案 public void bindEmpCustInvoice(string strCusCode) { List<Customer_Card_Filter> cardFilter = new List<Customer_Card_Filter>(); Custo

我正在尝试使用Linq查询连接两个nav web服务数据。但我该怎么做呢。我的代码如下。假设我有客户详细信息及其发票web服务。我希望这一页的细节。请给我解决方案

    public void bindEmpCustInvoice(string strCusCode)
    {

        List<Customer_Card_Filter> cardFilter = new List<Customer_Card_Filter>();
        Customer_Card_Filter cardField = new Customer_Card_Filter();
        cardFilter.Add(cardField);
        Customer_Card[] cardList = cls.wsCustomerCard.ReadMultiple(cardFilter.ToArray(), null, 3);
        RptEmpCustInvoise.DataSource = cardList;
        RptEmpCustInvoise.DataBind();

        decimal decValue = 0.00m;
        List<Customer_Statistics_Bill_to_Customer_Filter> cFilter = new List<Customer_Statistics_Bill_to_Customer_Filter>();
        Customer_Statistics_Bill_to_Customer_Filter cField = new Customer_Statistics_Bill_to_Customer_Filter();
        cFilter.Add(cField);
        Customer_Statistics_Bill_to_Customer[] billList = cls.wsCustBillService.ReadMultiple(decValue, decValue, decValue, decValue, cFilter.ToArray(), null, 3);
        RptEmpCustInvoise.DataSource = billList;
        RptEmpCustInvoise.DataBind();

        var q = (from cd in cardList
                 join bd in billList on cd.No equals bd.No
                 orderby cd.No
                 select new
                     {
                         cd.No,
                         cd.Name,
                         cd.Contact,
                         cd.Phone_No,
                         cd.City,
                         bd.Balance_LCY,
                         bd.Outstanding_Orders_LCY,
                         bd.Shipped_Not_Invoiced_LCY,
                         bd.Outstanding_Invoices_LCY,
                         bd.Outstanding_Serv_Orders_LCY,
                         bd.Serv_Shipped_Not_Invoiced_LCY,
                         bd.Outstanding_Serv_Invoices_LCY
                     }).ToArray();

    }
public void bindEmpCustInvoice(字符串strucscode)
{
List cardFilter=新列表();
客户卡过滤器卡字段=新客户卡过滤器();
添加(cardField);
Customer_Card[]cardList=cls.wsCustomerCard.ReadMultiple(cardFilter.ToArray(),null,3);
RptEmpCustInvoise.DataSource=cardList;
RptEmpCustInvoise.DataBind();
十进制数值=0.00m;
List cFilter=新列表();
客户\统计\账单\至\客户\过滤器cField=新客户\统计\账单\至\客户\过滤器();
cFilter.Add(cField);
客户\统计\账单\至\客户[]账单列表=cls.wsCustBillService.ReadMultiple(decValue,decValue,decValue,decValue,cFilter.ToArray(),null,3);
RptEmpCustInvoise.DataSource=billList;
RptEmpCustInvoise.DataBind();
var q=(来自卡片列表中的cd
将bd加入cd上的billList。No等于bd。No
orderby光盘编号
选择新的
{
光盘编号:,
光盘名称,
cd.联系人:,
cd.电话号码,
cd.城市,
bd.Balance_LCY,
bd.未完成的订单,
bd.Shipped\u未开具发票\u LCY,
bd.未付发票,
bd.未完成的服务订单,
bd.Serv已装运,未开具发票,
bd.未付服务发票
}).ToArray();
}

通过研究,我发现解决方案只是将linq结果绑定到数据源。代码如下

     public void bindEmpCustInvoice(string strCusCode)
    {
        try
        {

            Customer_Card[] cardList = cls.wsCustomerCard.ReadMultiple(null, null, 999999); Customer_Ledger_Entries[] billList = cls.wsCustInvoice.ReadMultiple(null,null,99999);

            var q = (from cd in cardList
                     join bd in billList on cd.No equals bd.Customer_No
                     orderby cd.No
                     select new
                         {
                             cd.No,
                             cd.Name,
                             cd.Contact,
                             cd.Phone_No,
                             cd.City,
                             bd.Amount });
            RptEmpCustInvoise.DataSource = q.ToList();
            RptEmpCustInvoise.DataBind();
        }
        catch { throw; }
    }

通过研究,我发现解决方案只是将linq结果绑定到数据源。代码如下

     public void bindEmpCustInvoice(string strCusCode)
    {
        try
        {

            Customer_Card[] cardList = cls.wsCustomerCard.ReadMultiple(null, null, 999999); Customer_Ledger_Entries[] billList = cls.wsCustInvoice.ReadMultiple(null,null,99999);

            var q = (from cd in cardList
                     join bd in billList on cd.No equals bd.Customer_No
                     orderby cd.No
                     select new
                         {
                             cd.No,
                             cd.Name,
                             cd.Contact,
                             cd.Phone_No,
                             cd.City,
                             bd.Amount });
            RptEmpCustInvoise.DataSource = q.ToList();
            RptEmpCustInvoise.DataBind();
        }
        catch { throw; }
    }