`
gstarwd
  • 浏览: 1527085 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用

阅读更多

原创   Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用 收藏

http://blog.csdn.net/jake_jrc/archive/2009/03/14/3989574.aspx

 

 

学SL有一段时间了,可是总感觉缺少点什么,那就是实际应用,怎么能把SL应用到我的项目中呢?一直是一个难题,我是个懒人喜欢用Dataset来 帮我做一些底层数据访问的工作,SL毕竟是表示层的技术,对数据访问是门外汉,只能用过wcf或webservice来实现异步调用,今天把我的学习笔记 给大家看看,没有太高深的技术,只是共享而已,大家如果有别的方法欢迎指教!

   新建一个Silverlight应用程序,再选择web应用程序

1

  在webapplication中添加一个数据集(Dataset),我用的是“NORTHWND.MDF”大家可以去ms网站去下载。

image     在查询里面添加一个

          SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (City LIKE '%' + @City + '%')

    新建一个“CustomersClass.cs” 实体类

public class 

CustomersClass
    

{

        public string 

CustomerID 

{ get

; set

; }

        public string 

CompanyName 

{ get

; set

; }

        public string 

ContactName 

{ get

; set

; }

        public string 

ContactTitle 

{ get

; set

; }

        public string 

Address 

{ get

; set

; }

        public string 

City 

{ get

; set

; }

    }

为了操作方便,我只选择其中几个字段内容,大家有需要可以自己添加;

下面开始添加webservice,这个是重点:

public class 

SLWebService 

: System

.Web

.Services

.WebService
    

{   
        //实例化Dataset

        SLDataSetTableAdapters

.CustomersTableAdapter 

Dal 

= 
new 

SilverlightCnblogs

.Web

.SLDataSetTableAdapters

.CustomersTableAdapter

();
         
        [WebMethod

]
        public 

CustomersClass

[] GetCustomersByCity

(string 

City

)
        {
            List

<CustomersClass

> CustomersC 

= new 

List

<CustomersClass

>();
            SLDataSet

.CustomersDataTable 

DT 

= new 

SLDataSet

.CustomersDataTable

();

            DT 

= Dal

.GetDataByCity

(City

);

            //foreach

循环将dataset中数据取出
            foreach 

(SLDataSet

.CustomersRow 

DD 

in 

DT

.Rows

)
            {
                CustomersClass 

CC 

= new 

CustomersClass

();

                CC

.Address 

= DD

.Address

.ToString

();

                CC

.City 

= DD

.City

.ToString

();

                CC

.CompanyName 

= DD

.CompanyName

.ToString

();

                CC

.ContactName 

= DD

.ContactName

.ToString

();

                CC

.ContactTitle 

= DD

.ContactTitle

.ToString

();

                CC

.CustomerID 

= DD

.CustomerID

.ToString

();

                CustomersC

.Add

(CC

);

            }

            System

.Threading

.Thread

.Sleep

(2000);  //延时一下为了看效果

            return 

CustomersC

.ToArray

();
        }

        [WebMethod

]  
        public string 

HelloWorld

()
        {
            return 

"Hello World"

;
        }

    }

最后别忘了把动态端口改成固定的!!

下面我来Silverlight,添加“服务引用”“发现”,这些大家都很熟了,不详细说了!

在Page.xaml文件中添加

<

Grid 

x

:

Name

="LayoutRoot" 

Background

="White">
        <

Grid.ColumnDefinitions

>
            <

ColumnDefinition 

Width

="*"/>
        </

Grid.ColumnDefinitions

>

        <

StackPanel 

Height

="Auto" 

Margin

="0,13,0,0" 

VerticalAlignment

="Top" 

Orientation

="Horizontal" 

HorizontalAlignment

="Right" 

Width

="385">
            <

TextBlock 

Height

="21" 

Width

="27" 

Text

="City:" 

TextWrapping

="Wrap" 

d

:

LayoutOverrides

="Width, Height" 

HorizontalAlignment

="Center" 

VerticalAlignment

="Center" 

Margin

="0,0,20,0"/>
            <

TextBox 

x

:

Name

="CityText" 

Height

="21" 

Width

="86" 

Text

="" 

TextWrapping

="Wrap" 

HorizontalAlignment

="Stretch" 

VerticalAlignment

="Center" 

Margin

="0,0,22,0"/>
            <

Button 

x

:

Name

="Seach"  

Height

="Auto" 

HorizontalAlignment

="Right" 

Margin

="0,0,14,0" 

VerticalAlignment

="Center" 

Width

="95" 

Content

=" Seach" 

Click

="Seach_Click"/>
            <

ProgressBar 

x

:

Name

="PBar" 

Height

="13" 

Width

="108" 

IsIndeterminate

="True" 

Visibility

="Collapsed"/>
        </

StackPanel

>
        <

data

:

DataGrid  

x

:

Name

="DataGrid" 

HorizontalAlignment

="Stretch" 

AutoGenerateColumns

="False"   

Margin

="8,49,8,20" 

Width

="Auto" 

IsReadOnly

="True">
            <

data

:

DataGrid.Columns  

>
                <

data

:

DataGridTextColumn 

Header

="CustomerID" 

Width

="auto"  

Binding

="{

Binding 

CustomerID

}">

</

data

:

DataGridTextColumn

>
                <

data

:

DataGridTextColumn 

Header

="CompanyName" 

Width

="auto" 

Binding

="{

Binding 

CompanyName

}">

</

data

:

DataGridTextColumn

>
                <

data

:

DataGridTextColumn 

Header

="ContactName" 

Width

="auto" 

Binding

="{

Binding 

ContactName

}">

</

data

:

DataGridTextColumn

>
                <

data

:

DataGridTextColumn 

Header

="ContactTitle" 

Width

="auto" 

Binding

="{

Binding 

ContactTitle

}">

</

data

:

DataGridTextColumn

>
                <

data

:

DataGridTextColumn 

Header

="Address" 

Width

="auto" 

Binding

="{

Binding 

Address

}">

</

data

:

DataGridTextColumn

>
                <

data

:

DataGridTextColumn 

Header

="City" 

Width

="auto" 

Binding

="{

Binding 

City

}">

</

data

:

DataGridTextColumn

>
            </

data

:

DataGrid.Columns

>
        </

data

:

DataGrid

>

    </

Grid

>

image

编写C#代码:

        private void 

Seach_Click

(object 

sender

, RoutedEventArgs 

e

)
        {
            this

.Seach

.IsEnabled 

= false

;
            this

.PBar

.Visibility 

= Visibility

.Visible

;//显示进度条


            this

.DataGrid

.Opacity 

= 0.5;   //修改透明度
            //异步调用
            

SC

.GetCustomersByCityAsync

(this

.CityText

.Text

.ToString

());
            SC

.GetCustomersByCityCompleted 

+= 
new 

EventHandler

<SilverlightCnblogs

.ServiceReference1

.GetCustomersByCityCompletedEventArgs

>(SC_GetCustomersByCityCompleted

);
        }

        void 

SC_GetCustomersByCityCompleted

(object 

sender

, SilverlightCnblogs

.ServiceReference1

.GetCustomersByCityCompletedEventArgs 

e

)
        {   //异步调用完毕
              

this

.DataGrid

.ItemsSource 

= e

.Result

;
            this

.Seach

.IsEnabled 

= true

;
            this

.PBar

.Visibility 

= Visibility

.Collapsed

;
            this

.DataGrid

.Opacity 

= 1;
        }
现存问题:当用"DataGrid

"是,不知道怎么控制

image



 

字体及对齐,请高手指教
源代码下载



分享到:
评论

相关推荐

    silverlight+Linq+webservice+xml留言板

    综合来看,这个“silverlight+Linq+webservice+xml留言板”项目结合了多种核心技术,展示了如何利用Silverlight创建交互式用户界面,通过Web服务实现前后端通信,以及使用LINQ to XML处理XML数据。这为学习和理解...

    js+webservice 样例

    js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例

    C++课设:基于QT+webservice的天气查询系统.zip

    1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设...C++课设:基于QT+webservice的天气查询系统.

    pb11+webservice开发分布式三层应用

    PB11(PowerBuilder 11)是一款由Sybase公司开发的可视化编程工具,主要用于构建企业级的应用程序,尤其在数据库应用开发方面有着广泛的应用。Webservice则是一种基于Web的、标准化的服务交互技术,它允许不同系统...

    pb11+webservice开发分布式三层应用 例程

    在本例程中,我们将深入探讨如何利用PB11结合Web服务(Webservice)技术来构建一个分布式三层应用。 **1. 分布式系统与三层架构** 分布式系统是多个独立计算机通过网络互相协作,共同完成一项任务。三层架构是一种...

    Struts+Spring+Hibernate+WebService集成架构

    Struts、Spring、Hibernate以及WebService是Java开发中常用的四大框架,它们在企业级应用开发中发挥着关键作用。本文将详细介绍这四大框架的集成架构及其核心功能。 **Struts** Struts是一个开源的MVC(Model-View-...

    maven-spring-mybatis-web+webservice

    【标题】"maven-spring-mybatis...总的来说,"maven-spring-mybatis-web+webservice"项目结合了强大的构建工具、全面的框架支持、灵活的数据访问和标准的API交互,为构建企业级Web应用提供了一种高效而实用的解决方案。

    java + webservice + sqlserver

    综上所述,"java + webservice + sqlserver"项目涉及到了Java Web服务的开发、客户端调用、以及与SQLServer数据库的交互,这是一项综合性的技术实践,要求开发者具备Java编程、Web服务原理、数据库管理和调试技巧。...

    Flex+WebService附件上传下载

    在IT领域,Flex和WebService是两个重要的技术概念,它们经常被用于构建富互联网应用程序(RIA)。本教程将探讨如何利用Flex作为前端客户端,通过WebService进行附件的上传和下载操作。 Flex是一款由Adobe开发的开源...

    Spring+SpringMVC+MyBatis+Maven+CXF+WebService之Web项目整合

    蛮简陋的一个项目,适合新手使用。 这是一个包含简单登录和查询的Web项目,内附有一个表sql文件和两个java项目。...WS_Client是客户端,是一个project项目,内部有一个WebService的测试类,用来测试从服务端取得数据

    pb11+webservice

    ### pb11+webservice开发分布式三层应用:深入解析与实践 #### 一、概述 在现代企业级软件开发中,分布式系统设计已成为主流趋势,其中PowerBuilder(PB)结合Web Service技术构建分布式三层架构应用尤为突出。PB...

    eclipse+tomcat+axis+webservice详尽教程(含初高级用法).pdf

    axis+webservice详尽教程(含初高级用法).pdfaxis+webservice详尽教程(含初高级用法).pdfaxis+webservice详尽教程(含初高级用法).pdf

    Delphi调用C#的Webservice返回Dataset

    总之,通过Delphi调用C#的Webservice返回Dataset是一种跨语言的数据交互方式,涉及到网络通信、数据序列化和反序列化等多个技术环节。熟练掌握这些技能,可以帮助开发者在多语言环境下构建高效、稳定的应用系统。

    spring + struts2 + webService

    自己写的一个测试项目,虽然简单,也完善地使用 spring + struts2 + webService 开发的一个简单的webService 刚入门的朋友 可以略微拿来看下 数据库未附送...mysql写的 表和字段都非常简单 用的话 可以自己完善下...

    axis+webservice教程+帮助文档

    axis+webservice教程+帮助文档

    ajax+WebService应用实例

    例如,一个简单的应用实例可能是用户输入表单信息,Ajax发送这些数据到WebService,WebService验证数据并返回结果,Ajax接收到结果后更新页面显示,整个过程用户几乎感觉不到页面刷新。 在提供的"AjaxServer"文件中...

    PB12.5+webservice实例

    PB12.5是PowerBuilder 12.5的简称,这是一个由Sybase(现为SAP的一部分)开发的强大的Windows应用程序开发工具,主要用于构建数据库驱动的桌面和Web应用程序。在本实例中,我们将深入探讨如何结合PB12.5与Web服务...

    EF+MVC+WebService增删改查

    总结起来,"EF+MVC+WebService增删改查"是一个综合性的Web开发实例,它展示了如何利用现代.NET技术栈进行高效的数据管理和远程服务交互。这个例子对于学习和实践.NET开发,特别是涉及数据库操作和服务化设计的场景,...

Global site tag (gtag.js) - Google Analytics