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();
}
浙公网安备 33010602011771号