搜索 | 会员  
利用Flash读取SQLServer数据库的值
来源: CSDN博客   作者:天佑  日期:2016-1-8  类别:编程语言  主题:.NET  编辑:天佑
本节我们来练习用Flash读取SQLServer数据库中的值,思路如下:用ASP.NET连接读取数据库,并生成XML列表,Flash去读取XML列表并且格式化结果显示在组件中。

   在Visual Studio 2005“解决方案资源管理器”的地球图标上点右键,选择“添加新项”,在弹出的窗口将之命名为xml_list.aspx,稍等片刻,工作区将自动转向该页面,同时在“解决方案资源管理器”内xml_list.aspx下可以展开其逻辑代码xml_list.aspx.cs。因为输出文档类型为 text/xml,所以我们把list.aspx除第一行以外的所有代码都删除,且增加两个参数,修改后第代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="xml_list.aspx.cs" Inherits="xml_list" ContentType="text/xml" CodePage="65001"%>

    保存为xml_list.aspx即可,新手朋友还可以再增加一个参数 debug=true,这样在程序出错时就会有具体的错误提示,不过记得,发布之前删除为好。接着双击xml_list.aspx.cs进入逻辑代码,把以下代码输入到文件中:
    using System; 
    using System.Data; 
    using System.Configuration; 
    using System.Collections; 
    using System.Web
    using System.Web.Security; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.WebControls.WebParts; 
    using System.Web.UI.HtmlControls; 
    //引入SQL命名空间,这是使用SQL Server 客户端必需的 
    using System.Data.SqlClient; 
    //定义被引用的xml_list类 
    public partial class xml_list : System.Web.UI.Page 
    { 
           //声明公有变量sql 
            public string sql; 
            protected void Page_Load(object sender, EventArgs e) 
            { 
                //设定strConnection为数据库连接字符串 
            string strConnection = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=myTesterDB;User ID=myTester;Password=abcdefg; "; 
            //建立一个SQL连接,连接字符串strConnection作为一个参数 
            SqlConnection objConnection=new SqlConnection(strConnection); 
            //连接应处于“打开“状态,否则一切操作都是徒劳的。 
            objConnection.Open(); 
                  //设置SQL语句,读取myTable中的5条数据 
            sql = "SELECT top 5 * FROM [myTable] ORDER BY [myPoints] DESC+ ";"; 
            //建立一个SQL命令对象,它有两个参数:第一个是命令即SQL语句,第二个是连接名 
            SqlCommand cmd = new SqlCommand(sql,objConnection); 
           //ASP.NET最快的读取方式:SqlDataReader,与ASP中的“1,1”有些类似,都是快速的,只读的 
            SqlDataReader dr = cmd.ExecuteReader(); 
            //输出XML头,XML根节点设置,其中包括:总记录数、总页数、当前页、管理状态 
            Response.Write("<?xml version='1.0' encoding='utf-8'?><数据>"); 
             //while(dr.Read)相当与“有符合的记录就执行一次”,类似于ASP的rs.MoveNext+LOOP 
                   while(dr.Read()){ 
    /*------------------------------------------------------
    每读取一次就输出一个子节点,类似于ASP要读取RecordSet中的name值用rs("name")一样,ASP.NET要读取DataReader中的name值,用dr["name"]; 
    ---------------------------------------------------------*/ 
                Response.Write("<资料 用户名='"+dr["myUsername"]+"' 积分='"+dr["myPoints"]+"'介绍='"+dr["selfIntro"]+"'/>"); 
  //输出XML结尾 
            Response.Write("</数据>"); 
            //释放连接所耗资源 
            objConnection.Dispose(); 
            //连接关闭 
            objConnection.Close(); 
            //释放命令所耗资源 
            cmd.Dispose(); 
            //释放DataReader所耗资源 
            dr.Dispose();


    本节我们来练习用Flash读取SQL Server数据库中的值,思路如下:用ASP.NET连接读取数据库,并生成XML列表,Flash去读取XML列表并且格式化结果显示在组件中。

    在Visual Studio 2005“解决方案资源管理器”的地球图标上点右键,选择“添加新项”,在弹出的窗口将之命名为xml_list.aspx,稍等片刻,工作区将自动转向该页面,同时在“解决方案资源管理器”内xml_list.aspx下可以展开其逻辑代码xml_list.aspx.cs。因为输出文档类型为 text/xml,所以我们把list.aspx除第一行以外的所有代码都删除,且增加两个参数,修改后第代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="xml_list.aspx.cs" Inherits="xml_list" ContentType="text/xml" CodePage="65001"%>

    保存为xml_list.aspx即可,新手朋友还可以再增加一个参数 debug=true,这样在程序出错时就会有具体的错误提示,不过记得,发布之前删除为好。接着双击xml_list.aspx.cs进入逻辑代码,把以下代码输入到文件中:
    using System; 
    using System.Data; 
    using System.Configuration; 
    using System.Collections; 
    using System.Web
    using System.Web.Security; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.WebControls.WebParts; 
    using System.Web.UI.HtmlControls; 
    //引入SQL命名空间,这是使用SQL Server 客户端必需的 
    using System.Data.SqlClient; 
    //定义被引用的xml_list类 
    public partial class xml_list : System.Web.UI.Page 
    { 
           //声明公有变量sql 
            public string sql; 
            protected void Page_Load(object sender, EventArgs e) 
            { 
                //设定strConnection为数据库连接字符串 
            string strConnection = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=myTesterDB;User ID=myTester;Password=abcdefg; "; 
            //建立一个SQL连接,连接字符串strConnection作为一个参数 
            SqlConnection objConnection=new SqlConnection(strConnection); 
            //连接应处于“打开“状态,否则一切操作都是徒劳的。 
            objConnection.Open(); 
                  //设置SQL语句,读取myTable中的5条数据 
            sql = "SELECT top 5 * FROM [myTable] ORDER BY [myPoints] DESC+ ";"; 
            //建立一个SQL命令对象,它有两个参数:第一个是命令即SQL语句,第二个是连接名 
            SqlCommand cmd = new SqlCommand(sql,objConnection); 
           //ASP.NET最快的读取方式:SqlDataReader,与ASP中的“1,1”有些类似,都是快速的,只读的 
            SqlDataReader dr = cmd.ExecuteReader(); 
            //输出XML头,XML根节点设置,其中包括:总记录数、总页数、当前页、管理状态 
            Response.Write("<?xml version='1.0' encoding='utf-8'?><数据>");


//while(dr.Read)相当与“有符合的记录就执行一次”,类似于ASP的rs.MoveNext+LOOP 
                   while(dr.Read()){ 
    /*--------------------------------------------------
    每读取一次就输出一个子节点,类似于ASP要读取RecordSet中的name值用rs("name")一样,ASP.NET要读取DataReader中的name值,用dr["name"]; 
    ------------------------------------------*/ 
                Response.Write("<资料 用户名='"+dr["myUsername"]+"' 积分='"+dr["myPoints"]+"'介绍='"+dr["selfIntro"]+"'/>"); 
            } 
            //输出XML结尾 
            Response.Write("</数据>"); 
            //释放连接所耗资源 
            objConnection.Dispose(); 
            //连接关闭 
            objConnection.Close(); 
            //释放命令所耗资源 
            cmd.Dispose(); 
            //释放DataReader所耗资源 
            dr.Dispose();


图10.35

    * 注:该示例的源文件在光盘 第十章\2\xml_list.aspx和xml_list.cs

    本节只需利用Flash读取ASP.NET取回的XML值即可完成一个简单的交互示例。在Flash软件中新建一个文档,拖入主场景一个TextArea组件,并命名为myTextArea,它用来显示结果,在Flash文档的动作面板中输入以下代码: 
    var myTextArea:mx.controls.TextArea; 
    var myXML:XML=new XML(); 
    myXML.ignoreWhite=true; 
    myXML.onLoad=function(success:Boolean):Void{ 
           if(success){ 
                  var root:XMLNode=this.firstChild; 
                  for(var i:Number=0;i<root.childNodes.length;i++){ 
                         myTextArea.text+="用户名:"+root.childNodes[i].attributes.用户名+"\t"; 
                         myTextArea.text+="积分:"+root.childNodes[i].attributes.积分+"\t"; 
                         myTextArea.text+="介绍:"+root.childNodes[i].attributes.介绍+"\t"; 
                         myTextArea.text+="\n\n"; 
                  } 
           } 
    } 
    myXML.load("http://develop.csai.cn "); 
    保存文件,调试代码,效果如图10.36所示:


图10.36


德仔网尊重行业规范,每篇文章都注明有明确的作者和来源;德仔网的原创文章,请转载时务必注明文章作者和来源:德仔网;
头条那些事
大家在关注
我们的推荐
也许感兴趣的
干货
了解一下吧