本文将重点讲述Silverlight中连接mysql数据库实例,这在RIA开发中比较基础,但是也是比较重要的内容。希望通过本文能让大家对连接MySQL有更深刻的理解。
在银光中国网(SilverlightChina.Net)有一篇"Silverlight与常用数据库互操作系列"文章,其中介绍了使用Silverlight存取不同数据库的方法和步骤。但是对于Silverlight存取MS SQL介绍的不够全面,这里我想介绍Silverlight如何通过WCF访问MSSQL数据库存储过程的。希望对大家能够有所帮助。
我们要实现, 用户输入用户名和密码后,点击登录按钮,传递用户名和密码到服务器端, 通过WCF访问MSSQL数据库,调用存储过程,在服务器端对用户名和密码进行匹配,匹配成功,则返回登录成功,否则,则是失败。
在文章开始前,我们需要做一下准备工作,
开发环境需求: vs2008 SP1, Silverlight 3 Develop Tools for VS2008 SP1, 客户端Silverlight 3 Runtime, MSSQL 2005 SP3 ;
建立例程数据库 SilverlightDemo,在数据库中建立一个新表 Users,包含以下字段;
添加内容到Users表,为了方便起见,密码全部使用明文,在正式项目中,建议对密码字段进行加密使用。
这里,我们验证用户名和密码,有两种简单方式,
一是使用存储过程读取用户名和密码,然后在服务器端进行用户名和密码匹配校验,如果查找到匹配数据,则返回登录成功,否则,则是登录失败;
二是传用户名和密码到存储过程中,在数据库存储过程中进行判断,使用Select语句进行查找,对应用户名和密码,如果查找到匹配结果,则返回用户ID, 服务器端接收到用户ID,则返回登录成功,否则,则是失败;
在本例中,主要是对Silverlight访问数据库进行讲述,所以,对于验证方法,不进行详细描述和讲解,如果有问题,可以留言给我,我们继续讨论,这里,我将使用第一种验证方法。 为此,建立一个简单的存储过程:
- CREATE PROCEDURE [dbo].[Login]
- ( @UserName Varchar(30))
- AS
- Select cUserName, cPassword
- From Users
- Where cUserName = @UserName
- RETURN
- 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
- public event PropertyChangedEventHandler PropertyChanged;
- #endregion
- }
- }
5. 在Users类中,添加契约成员
- private string userName;
- [DataMember()]
- public string UserName
- {
- get { return userName; }
- set { userName = value;}
- }
- private string password;
- [DataMember()]
- public string Password
- {
- get { return password; }
- set { password = value; }
- }
6. 建立构造函数 public Users(string sUserName,string sPassword),传递用户名和密码给契约成员;
- using System;
- using System.ComponentModel;
- using System.Runtime.Serialization;
- namespace SilverlightDBDemo.Web
- {
- [DataContract()]
- public class Users : INotifyPropertyChanged
- {
- private string userName;
- [DataMember()]
- &
关键词标签:Silverlight,MySQL,数
相关阅读
热门文章 10款MySQL数据库客户端图形界面管理工具推荐MySQL常用维护管理工具Linux VPS/服务器上轻松导入、导出MySQL数据MySQL复制的概述、安装、故障、技巧、工具
人气排行 MySQL数据库启动失败1067进程意外终止的解决办法总结Mysql 1045错误解决办法10款MySQL数据库客户端图形界面管理工具推荐MySQL服务器进程CPU占用100%解决办法MySQL导出导入命令的用例MySQL无法启动、无法停止各种解决方法总结三种常用的MySQL建表语句Mysql清空表的实现方法
查看所有0条评论>>