语言:c#问题:请问FLASH 怎么才能通过 C#读取ACCESS数据库中数据,或通过XML读取数据库信息?

解决方案 »

  1.   

    这个要讲很多哦!!
    主要是Flash读取和显示的问题了!!
      

  2.   

    举一个简单的例子就可以比如FALSH 读取数据库中的一条数据 显示出来
      

  3.   

    C#可以读取库中的数据,写成xml输出在页面。
    至于flash怎么样读取这个xml,肯定是可以的,我们现在就是这么做的。但是我不会flash
      

  4.   

    http://download.csdn.net/source/1285276
      

  5.   

    using System.Xml;            XmlTextWriter writer = new XmlTextWriter(this.Response.OutputStream, System.Text.Encoding.UTF8);
                //data开始
                writer.WriteStartElement("data");
                //total开始
                writer.WriteElementString("total", "4");            writer.WriteStartElement("bgcolor");
                writer.WriteElementString("main", "0x556275");
                writer.WriteElementString("linea", "0x556275");
                writer.WriteElementString("lineb", "0x556275");
                writer.WriteEndElement();            writer.WriteStartElement("");
                writer.WriteElementString("show", "false");
                writer.WriteElementString("xmax", decimal.Round(_transmit.END_HZ,0).ToString());
                writer.WriteElementString("ymax", "125");
                writer.WriteElementString("xmin", decimal.Round(_transmit.START_HZ,0).ToString());
                writer.WriteElementString("ymin", "0");
                writer.WriteElementString("cur", "true");
                writer.WriteEndElement();            if (Request.QueryString["st"] != null && Request.QueryString["st"].ToString() != "")
                {
                    st = Request.QueryString["st"].ToString();
                }
                //播出任务
                List<TaskInfo> _tasks = new List<TaskInfo>();
                _tasks = _planet.GetTasks(TransmitID);
                int i = 0;
                foreach (TaskInfo task in _tasks)
                {
                    writer.WriteStartElement("ping");
                    writer.WriteElementString("id", i.ToString());
                    writer.WriteElementString("xpos", decimal.Round(task.START_HZ,0).ToString());
                    decimal taskWidth = task.END_HZ - task.START_HZ;
                    writer.WriteElementString("width", decimal.Round(taskWidth,0).ToString());
                    writer.WriteElementString("height", decimal.Compare(task.EIRP, 10m) < 0 ? "10" : decimal.Round(task.EIRP, 0).ToString());
                    writer.WriteElementString("color", GetColorBySTS(task.ALARM_STS));
                    writer.WriteElementString("angle", "10");
                    writer.WriteStartElement("label");
                    if (st.ToLower() == "d")
                    {
                        writer.WriteCData("<font color='#000000' size='30'>△<b>" + decimal.Round(task.DELTA, 1).ToString() + "&#x000A;  " + decimal.Round(task.UP_POWER, 1).ToString() + "&#x000A;  " + decimal.Round(task.REST_POWER, 1).ToString() + "</b></font>");
                    }
                    else
                    {
                        writer.WriteCData("<font color='#000000' size='30'>△<b>" + Math.Pow(10d, (Convert.ToDouble(task.DELTA) - 30d) / 10d).ToString("0.0") + "&#x000A;  " + Math.Pow(10d, (Convert.ToDouble(task.UP_POWER) - 30d) / 10d).ToString("0.0") + "&#x000A;  " + Math.Pow(10d, (Convert.ToDouble(task.REST_POWER) - 30d) / 10d).ToString("0.0") + "</b></font>");
                    }
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                    i++;
                }            writer.WriteEndElement();            writer.Flush();
                writer.Close();
                Response.End();
      

  6.   


    在Flex 里开发(Actionscript3.0), 
    可以通过WebService访问数据库 或者可以直接访问一个asp.net页面
    如果不想直接访问,生成的Swf可和包含它的页面进行javascript 交互。如果是在winform里包含swf进行交互,还没有搞过,不敢妄言
      

  7.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" ContentType="text/xml" %>帮到底,记得前台加上ContentType="text/xml"
      

  8.   

    代码是抄来的吧
    我就要输出一条从数据库中读出的数据,然后用FLASH显示出这条数据你怎么弄的这么复杂呢?
      

  9.   

    ActionScript 通过xml操作数据库
    参考
      

  10.   

    楼上的 我看不懂.,我没要那么复杂的怎么谁都不能给我举一个简单的例子吗?FALSH读取数据库中的一条数据显示出来, 通过ASPX,XML什么方法显示出来都行.
      

  11.   

    不是抄袭,是本人写的。
    都那么清楚了,没办法帮你了
    你学学XmlTextWriter 写xml文件!
      

  12.   

    一般把数据库内容从C#传递给Flash3种办法,一个常用的是flash1.SetVariable("flash_value", value);这样你可以把数据库读到的内容做成一个字符串传递过去,在flash端读成XML格式。另一个是
    flash1.CallFunction("<invoke name=\"FlashFunction\" returntype=\"xml\"><arguments><string>"Show me"</string></arguments></invoke>");相应的在flash里你就需要定义接受方法
    ExternalInterface.addCallback("FlashFunction", this, doSth);
    function doSth(str: String): String 
    {
    }
    第2个方法是对传递多个参数很方便,也可以调用定义在flash中的某个功能。最后一个方法就是临时建立一个XML文件,把C#从数据库读到的内容写入XML文件,然后在flash里读出来。
      

  13.   

    楼主,那里面有我的逻辑。你肯定不能直接用了你用XmlTextWriter 用你自己的逻辑写一个你自己的xml流输出。
    上面只是教的方法。
      

  14.   

    哦, 你理解错啦, 你看下我问的问题,   我现在就需要一个简单的实例就可以, 我不是在问逻辑. 谁能给我一个简单的实例,就从数据库中读一个字出来 在FALSH中显示出来谁就帮到我了.
      

  15.   

    flash读取XML还是很方便的,有E4X
      

  16.   

    我做了一下:
    首先建一个网页readData.aspx,读数据库的,在html页面上写,后台不要写:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="readData.aspx.cs" Inherits="readData" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %><%    
        SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DbaseConnectionString"].ConnectionString);
        myConn.Open();
        SqlCommand myComm = new SqlCommand("Select top 1 name from A", myConn);
        SqlDataReader myReader = myComm.ExecuteReader();
        string NAME = "";
        if (myReader.Read())
            NAME =  myReader["name"].ToString();
        myConn.Close();
        Response.Write(NAME);
     %>
    表名为A,读一条记录,字段为name,
    运行这个网页,如果看到了name的值,那就是说第一步OK了!!第二建一个flash,最终发布名为read.swf
    1.在flash场景中拖入一个动态文本,在下方的属性面板中输入myName(实例名)
    2.新建一个层,在该层中加入代码(右击该层,点"动作")
    3.输入以下代码:set("myName","");
    function fload(){
      myload=new LoadVars();
      myload.sendAndLoad("readData.aspx",myload,"post");//注意readData.aspx就是第一部建立的
      myload.onLoad=function(success){
      _root["myName"]=myload["NAME"];
      }
    }
    fload();//同时还注意文件都在网站的跟目录
    这时就可发布为read.swf,将read.swf拷贝到网站的跟目录!!第三再建一个网页,名为Default.aspx,显示read.swf
    在该html页面中输入代码:
    <embed src="read.swf" width="200" height="200"></embed>好!!运行Default.aspx,则一切OK!!name的值通过flash显示在网页上
      

  17.   

    var xml:XML=<root><a><a1 sth="sth1'>aa1</a1></a><a><a2 sth="sth2'>aa2</bb></a2></root>
    xml.a就是a节点的集合了,a[0],a[1]这样调用就行了
    xml..@sth是所有sth的集合
    一个点是子节点,两个点是所有子节点,包括子节点中的子节点,@是属性具体可以看E4X的相关内容,注意:AS3才支持
      

  18.   

    更正
    var xml:XML= <root> <a> <a1 sth="sth1'>aa1 </a1> </a> <a> <a2 sth="sth2'>aa2 </a2> </a> </root>
      

  19.   

    能看到readData.aspx的值,FLASH 什么都不显示!
      

  20.   

    对楼主抱歉了,粘贴有误,应该这样:
    第一步readData.aspx页面中:
    ........
        if (myReader.Read()) 
            NAME ="&NAME=" +myReader["name"].ToString(); 
    .......
    运行该页面应该看到:
    &NAME=你的数据第二步中
    1.在flash场景中拖入一个动态文本,在下方的属性面板中输入myName(实例名) 
    在属性面板中找到变量:输入myName,
    也就是说设置实例名还要设置变量名!!可同名!!
    该步骤中代码没问题!!第三步调用falsh文件可换种方式,确保无误!
    建一个网页,名为Default.aspx,显示read.swf 
    在该html页面中输入代码: 
    ....
    <object codebase="http://download.macromedia.com/pub/shockwave/_&#13;&#10;cabs/flash/swflash.cab#version=6,0,29,0"
        height="200" width="200" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        viewastext>    <param name="Movie" value="read.swf"></object>肯定OK拉!!!