Asp.net+Flash2004学习笔记一

类别:Asp 点击:0 评论:0 推荐:
Flashmx2004中的DataGrid如何绑定asp.net的数据集:
<%@ Webservice Language="C#" class="test" %>
using System;
using System.Data;
using System.Web.Services;
using System.Data.OleDb;
public class test:WebService
{
[WebMethod]
  public DataSet getds()
  {
   DataSet ds=new DataSet();
   OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/service.mdb");
   OleDbDataAdapter da=new OleDbDataAdapter("select top 3 id,name,content from example",conn);
   conn.Open();
   da.Fill(ds,"example");
   conn.Close();
   return ds;
  }
}

调试的时候,调用getds方法,可以得到如下XML文件:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://tempuri.org/">
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="example">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="id" type="xs:int" minOccurs="0" />
                <xs:element name="name" type="xs:string" minOccurs="0" />
                <xs:element name="content" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
      <example diffgr:id="example1" msdata:rowOrder="0">
        <id>1</id>
        <name>lau</name>
        <content>hello</content>
      </example>
      <example diffgr:id="example2" msdata:rowOrder="1">
        <id>2</id>
        <name>xiao</name>
        <content>it's good</content>
      </example>
      <example diffgr:id="example3" msdata:rowOrder="2">
        <id>3</id>
        <name>bb</name>
        <content>wa~</content>
      </example>
    </NewDataSet>
  </diffgr:diffgram>
</DataSet>

返回的这个DataSet是[object Object]类型,根据wsdl得到的results的数据类型是.net DataSet,不过在flash固有的数据类型里并不包括这项。

 

经过大量的测试终于找到了两种解决办法:

办法一:

   SqlConnection conn=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
   SqlDataAdapter da=new SqlDataAdapter("select * from BBS_灌水乐园_疯逛灌水_发贴",conn);
   DataSet ds=new DataSet();
   conn.Open();
   da.Fill(ds);
   XmlDataDocument xmlDoc=new XmlDataDocument(ds);

Return xmlDoc.InnerXml //这样返回的就是xml格式的dataset

在Flash中接受的办法:

my_xml=new XML();

my_xml.parse("这里是你通过webservice得到的那个结果(也就是我的代码里最后返回的xmlDoc.innerxml)");之后就把结果传到了flash里,my_xml就是xml格式的dataset,然后你在帮定到datagrid里.OK!试试吧.

本文地址:http://com.8s8s.com/it/it8634.htm