使用Web Service 调用两地的数据

本文介绍了一种通过Web服务从不同城市获取公司数据的方法,并演示了如何将这些数据整合到单一数据表的过程。涉及的主要步骤包括从远程服务获取数据、本地数据获取及数据表的合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

[WebMethod]
    
public SimpleCompanyList GetSimpCompDataByKeywordFromTwoCity(string keyword)
    
{
        
//获得广州的数据
        itdb.SolutionDirWebServicesService obj_serv = new itdb.SolutionDirWebServicesService();

        itdb.SimpleCompanyList clist;
        clist 
= obj_serv.findCompanyListByKeyword(keyword, 199999999);


        DataTable dt1 
= new DataTable();
        dt1.Columns.Add(
"companyId");
        dt1.Columns.Add(
"name");
        dt1.Columns.Add(
"cName");
        dt1.Columns.Add(
"solutionCount");
        
        
if (clist.totalNumber > 0)
        
{
            
for (int i = 0; i < clist.arrayOfSimpleCompanyData.Length; i++)
            
{
                dt1.Rows.Add(clist.arrayOfSimpleCompanyData[i].companyId,
                            clist.arrayOfSimpleCompanyData[i].name,
                            clist.arrayOfSimpleCompanyData[i].cName,
                            clist.arrayOfSimpleCompanyData[i].solutionCount);
            }


        }


        
//获得本地的数据
        SimpleCompanyList obj_smplist = getSimpCompDataByKeyword(keyword);


        DataTable dt2 
= new DataTable();
        dt2.Columns.Add(
"companyId");
        dt2.Columns.Add(
"name");
        dt2.Columns.Add(
"cName");
        dt2.Columns.Add(
"solutionCount");
        
        
if (obj_smplist.totalNumber > 0)
        
{
            
for (int j = 0; j < obj_smplist.arrayOfSimpleCompanyData.Length; j++)
            
{
                dt2.Rows.Add(obj_smplist.arrayOfSimpleCompanyData[j].companyId,
                            obj_smplist.arrayOfSimpleCompanyData[j].name,
                            obj_smplist.arrayOfSimpleCompanyData[j].cName,
                            obj_smplist.arrayOfSimpleCompanyData[j].solutionCount);
            }

        }


        
//合并两张表
        DataTable newDataTable = dt2.Clone();//创建和dt2相同的表

        Object[] obj 
= new Object[newDataTable.Columns.Count];
        
for (int n = 0; n < dt1.Rows.Count; n++)
        
{
            dt1.Rows[n].ItemArray.CopyTo(obj, 
0);//将第n行的数据拷贝到对象obj中
            newDataTable.Rows.Add(obj);
        }


        
for (int m = 0; m < dt2.Rows.Count; m++)
        
{
            dt2.Rows[m].ItemArray.CopyTo(obj, 
0);//将第j行的数据拷贝到对象obj中
            newDataTable.Rows.Add(obj);
        }


        
int count = newDataTable.Rows.Count;

        SimpleCompanyList sclt 
= new SimpleCompanyList();//创建一个SimpleCompanyList对象
        int[] array = new int[3];
        array[
0= clist.totalNumber;//广州的数据的数量
        array[1= obj_smplist.totalNumber;//江西的数据的数量
        array[2= obj_smplist.totalNumber + clist.totalNumber;//两地的数据的数量总和

        sclt.totalCount 
= array;

        sclt.totalNumber 
= count;//两地的数据总数

        SimpleCompanyData[] scd 
= new SimpleCompanyData[count];//创建一个SimpleCompanyData数组对象

        
for (int j = 0; j < scd.Length; j++)    //实例化数组
        {
            scd[j] 
= new SimpleCompanyData();
        }



        
for (int i = 0; i < count; i++)
        
{
            scd[i].companyId 
= Int32.Parse(newDataTable.Rows[i][0].ToString());
            scd[i].name 
= newDataTable.Rows[i][1].ToString();
            scd[i].cName 
= newDataTable.Rows[i][2].ToString();
            scd[i].solutionCount 
= Int32.Parse(newDataTable.Rows[i][3].ToString());
        }


        sclt.arrayOfSimpleCompanyData 
= scd;

        
return sclt;

    }

    
#endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值