MFC调用.NET中webservice的Dataset

WebService测试代码:

 [WebMethod]
    public System.Data.DataSet GetDataSet()
    {
        System.Data.DataTable dt = new System.Data.DataTable();
        dt.TableName = "zj";
        dt.Columns.Add("ID");
        dt.Columns.Add("Name");
        object[] obj = new object[2];
        for (int i = 0; i < 10;i++ )
        {
            obj[0] = i;
            obj[1] = "Test"+i.ToString();
            dt.Rows.Add(obj);
            dt.AcceptChanges();
        }
        System.Data.DataSet ds = new System.Data.DataSet();
        ds.Tables.Add(dt);
        return ds;
    }

 

MFC客户端测试代码:

::CoInitialize(NULL);
 Service::CService cs;
 BSTR bstr = NULL;
 HRESULT hr = cs.GetDataSet(&bstr);
 CString str = (CString)bstr;
 SysFreeString(bstr);
 //MessageBox(str);
 int nIndex = str.Find("<NewDataSet",0);
 str.Delete(0,nIndex);
 nIndex = str.Find("</NewDataSet>",0)+13;
 str = str.Left(nIndex);
 //MessageBox(str);
 CXmlParserEx xmlHandle;
 BOOL bFlag =  xmlHandle.SetDoc(str);
 if (xmlHandle.FindElem("NewDataSet"))
 {
  xmlHandle.IntoElem();
 }
 
 CString strMsg = NULL;
 while (xmlHandle.FindElem("zj"))
 {
  xmlHandle.IntoElem();
  if (xmlHandle.FindElem("ID"))
  {
   strMsg.Format("%d",xmlHandle.GetDataInt());
   MessageBox(strMsg);
  }
  xmlHandle.OutOfElem();
 }

posted on 2009-06-23 18:13  周伟  阅读(235)  评论(0)    收藏  举报

导航