《Silverlight数据库交互》由会员分享,可在线阅读,更多相关《Silverlight数据库交互(20页珍藏版)》请在金锄头文库上搜索。
1、Silverlight 访问MSSQ数据库在银光中国网(SilverlightChina.Net)有一篇Silverlight与常用数据库互操作系列文章,其中介绍了使用Silverlight存取不同数据库的方法和步骤。但是对于Silverlight 存取MSSQL介绍的不够全面,这里我想介绍Silverlight如何通过WC访问MSSQ数据库存储过程的。希望对大家能够有所帮助。我们要实现, 用户输入用户名和密码后,点击登录按钮,传递用户名和密码到 服务器端,通过WC访问MSSQ数据库,调用存储过程,在服务器端对用户名和 密码进行匹配,匹配成功,则返回登录成功,否则,则是失败。在文章开始前,我们
2、需要做一下准备工作,* 开发环境需求:VS2008 SP1, Silverlight3 Develop Tools for VS2008SP1, 客户端 Silverlight 3 Run time,MSSQL 2005 SP3 ;*建立例程数据库SilverlightDemo ,在数据库中建立一个新表 Users,包 含以下字段;匚 oiurrtn NameData TypeAlow Nu9s圈idj intNamewardia卩刀nPassword哥击3(50)BD添加内容到Users表,为了方便起见,密码全部使用明文,在正式项目中,建议 对密码字段进行加密使用。tdNamePasswor
3、d1jv91234562testlest3demodemoNULLAUZ这里,我们验证用户名和密码,有两种简单方式, 一是使用存储过程读取用户名和密码, 然后在服务器端进行用户名和密码匹配校 验,如果查找到匹配数据,则返回登录成功,否则,则是登录失败;二是传用户名和密码到存储过程中, 在数据库存储过程中进行判断, 使用 Select 语句进行查找,对应用户名和密码,如果查找到匹配结果,则返回用户ID, 服务器端接收到用户ID,则返回登录成功,否则,则是失败;在本例中,主要是对 Silverlight 访问数据库进行讲述,所以,对于验证方法, 不进行详细描述和讲解,如果有问题,可以留言给我,我们
4、继续讨论,这里,我 将使用第一种验证方法。 为此,建立一个简单的存储过程:1 CREATEPROCEDURdEbo . Login2 ( UserNameVarchar (30)3 AS45 Select cUserName, cPassword6 From Users7 WherecUserName = UserName89 RETURN1011 SETNOCOUNTON在完成上面的准备工作后,开始建立新的 Silverlight 项目,建立一个新项目 SilverlightDBDemo,口 Solution SilverlightDBDemo (2 projects) 刁应 Sifverl
5、ightDBDemo+ 宝卩roperties岭 4 References=毎色 App.xamlMainPage.xamlI匣S- 马 $nverlightDBDmc.Web+) Properties + T References ClientBin:i Defauftaspx_ij App_Data适)Silverlightjs二 Webxonfic 引尿卄曲htc曲血_j SilverlightDBDemoTestPageHaspx1. 在MainPage中建立简单的登录界面,如下:登最.银光中国JSilvedight CHINA在Web项目中添加新选项F JSilverlightD&D
6、emo.Wel:1BUFldLriiJ1+ 油 Properties+ 乂 ReferencesRebuildk 二 App_DataCleanb. 一/ CientBinPublish.,SilverlightDBDemo.aView in Browser4 lJJ Defautt.aspx汁射 SilverlrghtjsConvert to Web ApplicationLZl SiverlightDBDemaTes1Check Accessibifity,5itver1ightD8DemoTas1Project Dependencies.詛 Web.configProject Build
7、 Order,.New扎AddExisting ttem.Add Reference.,.New FolderAdd Web Reference-.,Add ASP.NET Folder Add Service Reference,匚 omponent.,View Class DiagramSet as Startup ProjectDebu)Add Solution to Source Control.Cut-lj.PasteXRemoveRenameUnload ProjectOpen喩導皆圍Propertiessilrlight china2. 添加一个简单的用户信息类Users,作为W
8、CF勺契约成员,当我们从数据库 中读取信息后,将赋值给该类的契约成员,方便客户端进行调用;VS2008将自动生成Users类代码,在类命名前添加数据契约属性DataCo ntract()。为了能够使绑定数据返回修改通知,这里需要继承 INotifyPropertyCha nged 接口,该步骤不添加对本教程也没有影响,为了以后 例程代码完整性,这里我继承了该接口。在接口上点击右键,生成代码。UsersImplement Interface RefactorImplement Interface 怜Implement Interface Explicitly. 银光中團Siberlight CH
9、INAOrganize Usings 盘.Insert Snippet.M 曰Surround With.,. Go To Definition find Lit Rpfdrpnrpt代码如下:1 namespaceSilverlightDBDemo.Web2 3 DataContract()4 public class Users : INotifyPropertyChanged5 67 #region INotifyPropertyChanged Members89 public event PropertyChangedEventHandler PropertyChanged;1011
10、#endregion12 13 143. 在 Users 类中,添加契约成员1 private string userName;2 DataMember()3 public string UserName4 5 get return userName; 6 set userName = value;7 8 9 private string password;10 DataMember()11 public string Password12 13 get return password; 14 set password = value; 15 建立构造函数 public Users(strin
11、g sUserName,string sPassword) ,传递 用户名和密码给契约成员;7891011121314151617181920212223242526272829303132333435363738 1 using System;2 using System.ComponentModel;3 using System.Runtime.Serialization;45 namespaceSilverlightDBDemo.Web6 DataContract()public class Users : INotifyPropertyChanged private string us
12、erName;DataMember() public string UserNameget return userName; set userName = value;private string password;DataMember() public string Passwordget return password; set password = value; public Users( string sUserName,string sPassword)UserName = sUserName;Password = sPassword;#region INotifyPropertyC
13、hanged Memberspublic event PropertyChangedEventHandler PropertyChanged;#endregion4. 添加 Silverlight-enabled WCFService ,修改服务名字为 DBService.svc , 需要注意的是, WCF service 对于 Silverlight 仅支持 BasicHttpBinding ,而 VS2008 自动生成是 customB in di ng,很多朋友说使用了 Silverlight-e nabledWCF Service,链接数据库仍旧失败,无法找到远程服务器,是因为没有使用
14、BasicHttpBi ndi ng 进行通讯,造成的失败。后文我将讲述如何修改。5. 添加后,在 Wet服务器端会有 DBService.svc和DBService.svc.cs 文件出现,VS2008将自动更新 Web项目的类库引用;-i 、趣 5ilverlightDBDemo.Webt-豈!i Properties t - m ReferencesApp_Data由 & ClientBin.SilverlightDBDenno.xap型 DBService.svc幻 DBServke.svc.es4.日 Defaultaspx訂时 Sitverlight.jsihrerlight CHINAi_L SilverlightDfiDemoTestPage.aspx :-国 Silveriightl Web.config6. 双击进入DBService