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

Silverlight访问数据库实例二 ----- 利用Web service

阅读更多

Silverlight 2支持JSON、Web Service、WCF以及Sockets等新特性对数据CRUD操作,这个系列用实例结合数据库一步一步的图文描述来学习一下Silverlight 2 beta 1中进行数据库的CRUD操作方面的实战能力。一些关于Silverlight 2 Beta1的基础知识可以去看TerryLee 一步一步学Silverlight 2系列文章

这篇文章介绍如何在Silverlight 2 beta 1中使用ASP.NET Web Service进行数据CRUD操作。

软件需求

  • Silverlight 2 (beta1)
  • Visual Studio 2008
  • SQL 2005 Express with Management Studio

在SQL 2005中创建数据库

注意:如果你已经知道如何在SQL 2005中创建数据库,请跳过此步骤看下一部分。

第一步:打开SQL Server Management Studio Express

打开SQL Server Management Studio Express

第二步:使用Windows身份验证连接进入数据库

使用Windows身份验证连接数据库

第三步:在对象资源管理器窗口的数据库节点上右击选择“新建数据库...”

选择新建数据库...

第四步:输入数据库名称(我命名为“YJingLeeDB”),然后单击“确定”按钮。

数据库

第五步:在刚刚创建数据库的表节点上右击选择“新建表...”

选择新建表...

第六步:创建一个User表,新建2列,分别为UserID(主键)和UserName。

User表

好了,这个表创建好了,接下来我们将使用这个表。

在Visual Studio 2008中创建 Silverlight 2 (beta1)工程

第一步:打开VS 2008创建一个新的Silverlight 2工程。

创建一个新的Silverlight 2工程

第二步:选择创建一个ASP.NET Web Site或者Web Application Project用来托管Silverlight应用程序。

选择创建一个ASP.NET Web Site托管Silverlight应用程序

第三步:创建完成后的项目结构如下所示:

完成后的项目结构

在ASP.NET工程里创建Web Service

第一步:在ASP.NET工程节点上右击,选择“Add New Item...”

选择Add New Item...

第二步:在弹出的对话框中,选择“Web Service”项,并命名为“UserManage.asmx”

选择Web Service项

第三步:在web.config文件的 <configuration>标签下添加数据库连接。

<
connectionStrings

>
<
add 
name
=
"sqlConnectionString
"
connectionString
=
"
Data Source=.\SQLEXPRESS;
Initial Catalog=YJingLeeDB;Integrated Security=True
"
/>
</
connectionStrings
>


第四步:编辑UserManager.asmx文件,分别编写CRUD四个方法。

1.CreateUser方法

[WebMethod
]
public bool 
CreateUser(string 
userName)
{
try

{
SqlConnection 
_sqlConnection = new 
SqlConnection
();
_sqlConnection.ConnectionString = ConfigurationManager
.
ConnectionStrings["sqlConnectionString"
].ToString();
_sqlConnection.Open();
SqlCommand 
command = new 
SqlCommand
();
command.Connection = _sqlConnection;
command.CommandType = CommandType
.Text;
command.CommandText =
"INSERT INTO [User] ([UserName]) VALUES ('" 
+
userName.ToString().Replace("'"
, "''"
) + "')"
;
command.ExecuteNonQuery();
_sqlConnection.Close();
return true
;
}
catch 
(Exception 
ex)
{
return false

;
}
}

2.RetrieveUser方法

[WebMethod
]
public string 
RetrieveUsers()
{

try

{
SqlConnection 
_sqlConnection = new 
SqlConnection
();
_sqlConnection.ConnectionString = ConfigurationManager
.
ConnectionStrings["sqlConnectionString"
].ToString();
_sqlConnection.Open();
SqlDataAdapter 
da = new 
SqlDataAdapter
();
da.SelectCommand = new 
SqlCommand
(
"SELECT * FROM [User]"
, _sqlConnection);
DataSet 
ds = new 
DataSet
();
da.Fill(ds);
StringBuilder 
sb = new 
StringBuilder
();
sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
);
sb.Append("<Users>"
);
foreach 
(DataRow 
dr in 
ds.Tables[0].Rows)
{
sb.Append("<User>"
);
sb.Append("<UserID>"
);
sb.Append(dr[0].ToString());
sb.Append("</UserID>"
);
sb.Append("<UserName>"
);
sb.Append(dr[1].ToString());
sb.Append("</UserName>"
);
sb.Append("</User>"
);
}
sb.Append("</Users>"
);
_sqlConnection.Close();
return 
sb.ToString();
}
catch 
(Exception 
ex)
{
return string

.Empty;
}
}

3.UpdateUser方法

[WebMethod
]
public bool 
UpdateUser(int 
userID, string 
userName)
{

try

{
SqlConnection 
_sqlConnection = new 
SqlConnection
();
_sqlConnection.ConnectionString = ConfigurationManager
.
ConnectionStrings["sqlConnectionString"
].ToString();
_sqlConnection.Open();
SqlCommand 
command = new 
SqlCommand
();
command.Connection = _sqlConnection;
command.CommandType = CommandType
.Text;
command.CommandText = "UPDATE [User] " 
+
"SET [UserName] = '" 
+
userName.ToString().Replace("'"
, "''"
) + "'" 
+
"WHERE [UserID] = " 
+ userID.ToString();
command.ExecuteNonQuery();
_sqlConnection.Close();
return true
;
}
catch 
(Exception 
ex)
{
return false

;
}
}

4.DeleteUser方法

[WebMethod
]
public bool 
DeleteUser(int 
userID)
{

try

{
SqlConnection 
_sqlConnection = new 
SqlConnection
();
_sqlConnection.ConnectionString = ConfigurationManager
.
ConnectionStrings["sqlConnectionString"
].ToString();
_sqlConnection.Open();
SqlCommand 
command = new 
SqlCommand
();
command.Connection = _sqlConnection;
command.CommandType = CommandType
.Text;
command.CommandText =
"DELETE [User] WHERE [UserID] = " 
+ userID.ToString();
command.ExecuteNonQuery();
_sqlConnection.Close();
return true
;
}
catch 
(Exception 
ex)
{
return false

;
}
}

第五步:修改ASP.NET工程属性,修改一个固定的端口。

修改固定端口

第六步:编译ASP.NET工程。

在Silverlight 2 (beta1)工程中引用ASP.NET Web Service

第一步:在Silverlight工程的引用节点上右击选择“Add Service Reference...”。

选择Add Service Reference...

第二步:在下面的对话框中点击“Discover”按钮

点击Discover按钮

第三步:在点击Discover按钮之后,地址栏里显示了UserManage.asmx。在Service面板出现一个Web Service,双击这个服务。修改Namespace为WebServiceProxy,单击OK。

修改Namespace为WebServiceProxy

现在,我们可以在Silverlight工程中使用Web Service了

分享到:
评论

相关推荐

    silverlight 连接数据库 实例

    总的来说,"silverlight 连接数据库 实例"是一个关于如何在Silverlight应用中使用MySql数据库的实践教程,涉及到了配置数据库连接字符串、创建数据库连接、执行SQL操作以及处理异步通信等多个关键步骤。这样的实例...

    silverlight访问WCF实例开发培训

    这个实例不仅涵盖了Silverlight与WCF的基本交互,还涉及了数据绑定、UI设计、数据库访问等多个重要知识点。通过这个实例,开发者可以深入理解如何在Silverlight中调用WCF服务,实现前端与后端的数据交换,同时也能...

    silverlight3.0实例和讲解2

    《Silverlight 3.0 实例与讲解》 在深入探讨Silverlight 3.0之前,我们先要了解什么是...通过这些实例和讲解,开发者可以更好地理解如何利用Silverlight 3.0构建富互联网应用,从而提升Web应用的用户体验和功能深度。

    wcf连接数据库

    这样,Silverlight应用可以通过调用WCF服务的方法来执行CRUD(创建、读取、更新、删除)操作,而无需直接访问数据库,增加了安全性。 1. **创建WCF服务** - 首先,在Visual Studio中创建一个新的WCF服务项目。这将...

    Silverlight实例项目

    【Silverlight实例项目】是一个专为初学者设计的实践教程,旨在通过Silverlight技术实现基本的数据操作功能,包括增、删、改、查。Silverlight是微软推出的一种富互联网应用程序(RIA)平台,它允许开发者创建具有...

    WCF RIA Service Silverlight 商业应用

    总的来说,"WCF RIA Service Silverlight 商业应用"是一个利用微软技术栈构建的Web应用程序示例,它展示了如何通过WCF RIA Services与Silverlight结合,实现高效且功能丰富的商业应用。在这个例子中,开发者可以学习...

    Silverlight实例

    5. **配置服务**:设置WCF服务的配置文件(web.config),定义服务地址、绑定和行为,使其可被Silverlight客户端访问。 6. **添加服务引用**:在Silverlight客户端项目中,添加对WCF服务的引用,生成代理类以便于...

    Silverlight留言板源码

    通过Web Service,Silverlight客户端能够安全地向Access数据库添加、查询和更新留言数据,而无需直接访问数据库文件,增强了系统的安全性。 源码中的关键组成部分可能包括以下几个方面: 1. **用户界面**:...

    我的博客中 Silverlight WCF RIA服务 (三)创建一个RIA Services Solution 源代码

    在本篇中,我们将深入探讨如何利用Silverlight WCF RIA(Rich Internet Application Services)服务创建一个解决方案。Silverlight,作为Microsoft开发的一款富客户端技术,主要用于构建交互性强、视觉效果丰富的Web...

    Silverlight 2教程

    - **ADO.NET Data Services**:一种基于REST的服务,用于访问数据库。 - **综合实例**:通过一个RSS阅读器的实例展示如何集成以上各项技术。 #### 三、浏览器交互 - **与HTML DOM交互**:介绍了如何在Silverlight中...

    silverlight5+vs2010企业应用架构及后台界面UI

    2. Service-Oriented Architecture (SOA):企业应用通常需要与各种后端服务进行交互,如数据库、Web服务等。Silverlight 5支持WCF(Windows Communication Foundation)服务,允许开发者构建符合SOA原则的分布式系统...

    asp.net 使用Silverlight操作ASPNETDB数据库

    通过这种方式,可以利用Silverlight的交互性和ASP.NET的数据库管理功能,创建出功能强大且用户友好的Web应用程序。在实际开发中,还可以扩展这个基础,例如添加错误处理、数据验证和更复杂的业务逻辑。

    sliverlight+wcf+sql简单实例

    3. 实现服务接口,如Service1.svc,这里可以编写与数据库交互的代码,如使用ADO.NET访问SQL Server。 步骤二:配置WCF服务 1. 在Web.config文件中配置服务终结点,指定地址、绑定和合约。 2. 配置行为元素以启用...

    搭建WebGIS开发环境

    - 安装程序支持文件,然后选择功能和实例。 - 设置服务器配置(如SQL Server代理、SQL Server Database Engine等)。 - 数据库引擎配置选择Windows身份验证模式,并指定SQL Server管理员。 - 运行安装规则,准备安装...

    Silverlight 3:显示SQL Server数据

    在Silverlight 3中,开发者可以利用各种功能来与数据库进行交互,包括展示来自SQL Server的数据。本篇文章将深入探讨如何在Silverlight DataGrid控件中实现这一目标。 首先,了解VB9(Visual Basic 9)和VB8...

    webgis.rar_GIS web_Welcome!_gis_web gis_webgis

    5. **标准与协议**:如OGC(Open Geospatial Consortium)制定的WMS(Web Map Service)、WFS(Web Feature Service)等,用于不同GIS系统之间的数据交换。 “Welcome!”标签可能表示这是一个入门级别的WebGIS资源...

    .NET项目文件结构

    * Src/Solution(Service) WCF Service 项目:用于存储项目的 WCF 服务项目文件的目录,包括配置文件 Web.config 和服务文件等。 * Src/Solution(Service)/Bin Service 文件引用组件的输出目录:用于存储项目编译后的...

    PDF-WindowsPhone7Recipes-英文版.rar

    5. **数据访问与存储**:介绍本地数据库SQLite的使用,XML文件存储,以及Isolated Storage API,用于保存应用程序数据和用户设置。 6. **网络编程**:探讨Web服务调用,包括SOAP和RESTful服务,以及XML和JSON数据...

Global site tag (gtag.js) - Google Analytics