1 Silverlight访问MSSQL数据库Word格式.docx
《1 Silverlight访问MSSQL数据库Word格式.docx》由会员分享,可在线阅读,更多相关《1 Silverlight访问MSSQL数据库Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
服务器端接收到用户ID,则返回登录成功,否则,则是失败;
在本例中,主要是对Silverlight访问数据库进行讲述,所以,对于验证方法,不进行详细描述和讲解,如果有问题,可以留言给我,我们继续讨论,这里,我将使用第一种验证方法。
为此,建立一个简单的存储过程:
1
CREATE
PROCEDURE
[dbo].[Login]
2
(
@UserName
Varchar(30))
3
AS
4
5
Select
cUserName,
cPassword
6
From
Users
7
Where
cUserName
=
@UserName
8
9
RETURN
10
11
SET
NOCOUNT
ON
在完成上面的准备工作后,开始建立新的Silverlight项目,
1.建立一个新项目"
SilverlightDBDemo"
2.在MainPage中建立简单的登录界面,如下:
3.在Web项目中添加新选项
4.
添加一个简单的用户信息类Users,作为WCF的契约成员,当我们从数据库中读取信息后,将赋值给该类的契约成员,方便客户端进行调用;
VS2008将自动生成Users类代码,在类命名前添加数据契约属性[DataContract()]。
为了能够使绑定数据返回修改通知,这里需要继承INotifyPropertyChanged接口,该步骤不添加对本教程也没有影响,为了以后例程代码完整性,这里我继承了该接口。
在接口上点击右键,生成代码。
代码如下:
namespace
SilverlightDBDemo.Web
{
[DataContract()]
public
class
Users
:
INotifyPropertyChanged
#region
INotifyPropertyChanged
Members
event
PropertyChangedEventHandler
PropertyChanged;
#endregion
12
}
13
14
5.在Users类中,添加契约成员
private
string
userName;
[DataMember()]
UserName
get
{
return
set
userName
value;
password;
Password
password
15
6.建立构造函数publicUsers(stringsUserName,stringsPassword),传递用户名和密码给契约成员;
using
System;
System.ComponentModel;
System.Runtime.Serialization;
16
17
18
19
20
21
22
23
24
25
26
Users(string
sUserName,string
sPassword)
27
28
UserName
sUserName;
29
Password
sPassword;
30
31
32
33
34
35
36
37
38
7.添加"
Silverlight-enabledWCFService"
,修改服务名字为DBService.svc,需要注意的是,WCFservice对于Silverlight仅支持BasicHttpBinding,而VS2008自动生成是customBinding,很多朋友说使用了"
,链接数据库仍旧失败,无法找到远程服务器,是因为没有使用BasicHttpBinding进行通讯,造成的失败。
后文我将讲述如何修改。
8.添加后,在Web服务器端会有DBService.svc和DBService.svc.cs文件出现,VS2008将自动更新Web项目的类库引用;
9.双击进入DBService.svc.cs文件,可以看到以下代码:
System.Linq;
System.ServiceModel;
System.ServiceModel.Activation;
System.Collections.Generic;
System.Text;
[ServiceContract(Namespace
"
)]
[AspNetCompatibilityRequirements(RequirementsMode
AspNetCompatibilityRequirementsMode.Allowed)]
DBService
[OperationContract]
void
DoWork()
//
Add
your
operation
implementation
here
return;
more
operations
here
and
mark
them
with
这里我们没有修改ServiceContract命名空间,所以保持默认为空,AspNet的兼容需求模式我们保持默认。
在正式项目中,我们习惯将所有的[OperationContract]函数放入一个接口文件中,这样方便扩展以及维护,在本例,为了方便大家理解,就不把[OperationContract]放入接口文件。
在VS2008自动生成代码下面直接添加数据库访问代码。