蛙蛙池塘

没有公主的蛙蛙王子

用户操作
[即时聊天] [发私信] [加为好友]
蛙蛙王子ID:onlytiancai
123840次访问,排名686好友1人,关注者2
onlytiancai的文章
原创 93 篇
翻译 0 篇
转载 22 篇
评论 117 篇
蛙蛙王子的公告
残荷听雨,梨花飞雪,落英缤纷时节。晓来谁染枫林醉?点点都是离人泪
活着,就是快乐!自信,就是美丽! 有人爱,就是幸福。

但愿野百合也有春天

最近评论
hdnero:wow power leveling
hdnero:wow power leveling
lindahou:THANK YOU VERY MUCH
mylittledog:如果我要添加http://172.20.50.11呢?
hm8030:问题2:请教:怎样让页面局部无刷新更新数据呀,xmlhttp可以发送recordset吗?

问题是这样的:我的首页上有好几处显示数据的表格,每个表示对应着服务器的一个记录集(recordset),我想让其中几个表格能够每隔30秒种更新一下数据,前提是网页的其它部分,比如说广告,图片等不用更新。
整个页面的无刷新更新和只更新某个字符串我已经做到了,现在我是想让一……
文章分类
收藏
    相册
    友情博客
    Anatoly 姐姐的博客
    Bob Beauchemin姐姐的博客
    chnking姐姐的博客
    cocosoft姐姐的博客
    donet姐姐的博客
    Eric/xin姐姐的博客
    ilqtj姐姐的博客
    JAVA姐姐的博客
    Nathan Dunlap姐姐的博客
    Sinoprise Studios姐姐的博客
    千山一鸟的博客
    土人姐姐的博客
    微软姐姐的博客
    思归姐姐的博客
    木子姐姐的博客
    笨笨姐姐的博客
    阿好姐姐的博客
    飞信美眉 飞信交友
    龙卷风姐姐的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 蛙蛙推荐: 用web服务传递Dataset的一个简单例子收藏

    新一篇: 转贴(msdn):Microsoft SQL Server 2005 的 XML 最佳实施策略 | 旧一篇: 蛙蛙推荐:整理了一些SQL数据库技巧,贴一下

    蛙蛙推荐: 用web服务传递Dataset的一个简单例子

    首先声明:偶是asp.net新手,写的粗糙的地方欢迎高手指导改正,这个例子是抽时间写的,没有做过多的优化,比如说把web服务加入本地的application缓存起来,还有加入安全的身份验证等等,web服务的出现对我们来说无疑是件大好事,我们得慢慢来掌握这门技术,先从最简单的例子开始.
    一般来说web服务使用的过程是这样的:web服务付费用户通过查询uddi目录查找web服务的disco文件,然后查询disco文件找出web服务中的wsdl描述的url,使用wsdl文件就可以创建和理解发送到以及web服务发送过来的soap数据包.这样数据就可以完成一次传递了,顺便说一下,soap可以传递的类型很多,如果单纯用post或者get的话传输的数据类型比较单一,应用起来也比较复杂,不过下次我打算写个用用asp,vbs,xmlhttp来应用web服务的一个例子.

    在使用示例之前,请确认你安装了.NET框架还有SQLSERVER2000以及它的默认示例数据库,示例中数据库的连接代码请修改成适合你的数据库环境的代码,比如说帐户和密码的部分.

    打开vs.net,新建一个asp.net(C#)的解决方案wawa,再添加一个web服务:wawaService.asmx
    在原有的基础上再导入一个命名空间,用以下语句:
    using System.Data.SqlClient;
    然后加一个公有方法wawa_getDataSet,这个方法是是调用getDataSet方法并返回一个DataSet,最后确保代码如下
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
    using System.Data.SqlClient;

    namespace wawa
    {

     [WebService(Name= "wawa Service",
     Description="wawa",
     Namespace="wawa")
     ]
     public class wawaService : System.Web.Services.WebService
     {
      [WebMethod(Description="wawa")]
      public DataSet wawa_getDataSet(string str)
      {
       
       return getDataSet(str_wawa_sql);
      }
      private DataSet getDataSet(string sql){
       string connString ="server=(local);database=Northwind;uid=sa;pwd=sa;";
       SqlConnection conn=new SqlConnection(connString);
       conn.Open();
       SqlDataAdapter da=new SqlDataAdapter(sql,conn);
       DataSet ds=new DataSet();
       da.Fill(ds,"Employees");
       return ds;
      }
      public wawaService()
      {
      
        
       //构造函数
       InitializeComponent();
      }

      #region 组件设计器生成的代码
      
      //Web 服务设计器所必需的
      private IContainer components = null;
        

      private void InitializeComponent()
      {
      }


      protected override void Dispose( bool disposing )
      {
       if(disposing && components != null)
       {
        components.Dispose();
       }
       base.Dispose(disposing);  
      }
      
      #endregion

       


     }
    }
    这时候打开http://192.168.0.110/wawa/wawaService.asmx测试一下(注意IP地址换成你自己机子的IP,不行就LOCALHOST)
    现在我们把这个web服务在本地生成代理,需要用到wsdl.exe命令,这个命令应该是装了.net框架后就有的,在系统的命令模式下键入如下信息:
    (注意一点,如果直接在CMD命令模式下无法运行wsdl的话,查找这个文件,并把它的所在路径配置到服务器的环境变量的系统变量的PATH变量里,记着各个路径之间用半角的英文符分号隔开哦,这个地方可能说的有点儿晕,没听明白的话,直接运行"Visual Studio .NET 2003 命令提示"工具就可以运行wsdl命令了,下面的csc命令一样,有人说:"Visual Studio .NET 2003 命令提示"在哪儿呢,我倒.
    wsdl /language:CS /namespace:wawa /out:wawaProxy.cs http://192.168.0.110/wawa/wawaService.asmx?WSDL

    显示信息和以下类似:

    E:\me\web.net\wawa>wsdl /language:CS /namespace:wawa /out:wawaProxy.cs http://19
    2.168.0.110/wawa/wawaService.asmx?WSDL
    Microsoft (R) Web 服务描述语言实用工具
    [Microsoft (R) .NET Framework,版本 1.1.4322.573]
    Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

    正在写入文件“wawaProxy.cs”。

    E:\me\web.net\wawa>

    用记事本打开生成的wawaProxy.cs文件,观察一下,差不多如下
    //------------------------------------------------------------------------------
    // <autogenerated>
    //     This code was generated by a tool.
    //     Runtime Version: 1.1.4322.573
    //
    //     Changes to this file may cause incorrect behavior and will be lost if
    //     the code is regenerated.
    // </autogenerated>
    //------------------------------------------------------------------------------

    //
    // 此源代码由 wsdl, Version=1.1.4322.573 自动生成。
    //
    namespace wawa {
        using System.Diagnostics;
        using System.Xml.Serialization;
        using System;
        using System.Web.Services.Protocols;
        using System.ComponentModel;
        using System.Web.Services;
       
       
        /// <remarks/>
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Web.Services.WebServiceBindingAttribute(Name="wawa ServiceSoap", Namespace="wawa")]
        public class wawaService : System.Web.Services.Protocols.SoapHttpClientProtocol {
           
            /// <remarks/>
            public wawaService() {
                this.Url = "
    http://192.168.0.110/wawa/wawaService.asmx";
            }
           
            /// <remarks/>
            [System.Web.Services.Protocols.SoapDocumentMethodAttribute("wawa/wawa_getDataSet", RequestNamespace="wawa", ResponseNamespace="wawa", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
            public System.Data.DataSet wawa_getDataSet() {
                object[] results = this.Invoke("wawa_getDataSet", new object[0]);
                return ((System.Data.DataSet)(results[0]));
            }
           
            /// <remarks/>
            public System.IAsyncResult Beginwawa_getDataSet(System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("wawa_getDataSet", new object[0], callback, asyncState);
            }
           
            /// <remarks/>
            public System.Data.DataSet Endwawa_getDataSet(System.IAsyncResult asyncResult) {
                object[] results = this.EndInvoke(asyncResult);
                return ((System.Data.DataSet)(results[0]));
            }
        }
    }

    这时候我们要把wawaProxy.cs文件编译成动态链接库,用如下命令
    csc /t:library /r:System.Web.Services.dll /out:wawaProxy.dll wawaProxy.cs
    出现的提示类似于下面:

    E:\me\web.net\wawa>csc /t:library /r:System.Web.Services.dll /out:wawaProxy.dll
    wawaProxy.cs
    Microsoft (R) Visual C# .NET 编译器版本 7.10.3052.4
    用于 Microsoft (R) .NET Framework 版本 1.1.4322
    版权所有 (C) Microsoft Corporation 2001-2002。保留所有权利。

    然后把生成的wawaProxy.dll拷贝到当前目录下的BIN目录中.
    下面添加个wawaService.aspx的窗体,这个窗体用来调用web服务并显示数据,再在后台编码中导入两个命名空间,
    using System.Web.Services;
    using System.Data.SqlClient;

    拖一个datagrid进来,取名为DataGridwawa
    保证页面类似如下所示:
    <%@ Page language="c#" Codebehind="wawaService.aspx.cs" AutoEventWireup="false" Inherits="wawa.wawaService1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
     <HEAD>
      <title>wawaService</title>
      <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="
    http://schemas.microsoft.com/intellisense/ie5">
     </HEAD>
     <body MS_POSITIONING="GridLayout">
      <form id="Form1" method="post" runat="server">
       <asp:DataGrid id="DataGridwawa" style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 232px"
        runat="server"></asp:DataGrid>
      </form>
     </body>
    </HTML>
    现在打开wawaService.aspx的后台编码文件wawaService.aspx.cs,在Page_Load方法中引用web服务,并且调用web服务返回的DataSet绑定DataGridwawa
    写完了之后代码类似如下所示:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.Services;
    using System.Data.SqlClient;

    namespace wawa
    {

     public class wawaService1 : System.Web.UI.Page
     {
      protected System.Web.UI.WebControls.DataGrid DataGridwawa;
     
      private void Page_Load(object sender, System.EventArgs e)
      {
       wawaService Servicewawa =new wawaService();
       string str_wawa_sql="SELECT EmployeeID,TitleOfCourtesy ,FirstName,LastName FROM Employees";
       DataSet dswawa=new DataSet();
       dswawa=Servicewawa.wawa_getDataSet(str_wawa_sql);
       DataGridwawa.DataSource=dswawa;
       DataGridwawa.DataBind();
      }

      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {

       InitializeComponent();
       base.OnInit(e);
      }
      

      private void InitializeComponent()
      {   
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion
     }
    }
    好了,现在把wawaService.aspx设置为起始页,把Ctrl+Shilt+B,生成解决方案,
    打开http://192.168.0.110/wawa/wawaService.aspx(当然,具体的地址要看你机器的IP了)地址就会看到你想要的效果了,

    发表于 @ 2004年07月08日 16:13:00|评论(loading...)|编辑

    新一篇: 转贴(msdn):Microsoft SQL Server 2005 的 XML 最佳实施策略 | 旧一篇: 蛙蛙推荐:整理了一些SQL数据库技巧,贴一下

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 蛙蛙王子