ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:391.38KB ,
资源ID:23171362      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23171362.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Silverlight中连接MySQL数据库实例详解.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Silverlight中连接MySQL数据库实例详解.docx

1、Silverlight中连接MySQL数据库实例详解Silverlight中连接MySQL数据库实例详解2009-12-31 11:43来源:天极网软件频道作者:天极网开发频道责任编辑:郑重yesky评论(3)本文将重点讲述Silverlight中连接MySQL数据库实例,这在RIA开发中比较基础,但是也是比较重要的内容。希望通过本文能让大家对连接MySQL有更深刻的理解。在银光中国网(SilverlightChina.Net)有一篇Silverlight与常用数据库互操作系列文章,其中介绍了使用Silverlight存取不同数据库的方法和步骤。但是对于Silverlight存取MS SQL介

2、绍的不够全面,这里我想介绍Silverlight如何通过WCF访问MSSQL数据库存储过程的。希望对大家能够有所帮助。我们要实现, 用户输入用户名和密码后,点击登录按钮,传递用户名和密码到服务器端, 通过WCF访问MSSQL数据库,调用存储过程,在服务器端对用户名和密码进行匹配,匹配成功,则返回登录成功,否则,则是失败。在文章开始前,我们需要做一下准备工作,开发环境需求: VS2008 SP1, Silverlight 3 Develop Tools for VS2008 SP1, 客户端Silverlight 3 Runtime, MSSQL 2005 SP3 ;建立例程数据库 Silver

3、lightDemo,在数据库中建立一个新表 Users,包含以下字段;添加内容到Users表,为了方便起见,密码全部使用明文,在正式项目中,建议对密码字段进行加密使用。这里,我们验证用户名和密码,有两种简单方式,一是使用存储过程读取用户名和密码,然后在服务器端进行用户名和密码匹配校验,如果查找到匹配数据,则返回登录成功,否则,则是登录失败;二是传用户名和密码到存储过程中,在数据库存储过程中进行判断,使用Select语句进行查找,对应用户名和密码,如果查找到匹配结果,则返回用户ID, 服务器端接收到用户ID,则返回登录成功,否则,则是失败;在本例中,主要是对Silverlight访问数据库进行讲

4、述,所以,对于验证方法,不进行详细描述和讲解,如果有问题,可以留言给我,我们继续讨论,这里,我将使用第一种验证方法。 为此,建立一个简单的存储过程:1. CREATE PROCEDURE dbo.Login 2. ( UserName Varchar(30) 3. AS 4. Select cUserName, cPassword 5. From Users 6. Where cUserName = UserName 7. RETURN 8. SET NOCOUNT ON 在完成上面的准备工作后,开始建立新的Silverlight项目,1. 建立一个新项目SilverlightDBDemo,2

5、. 在MainPage中建立简单的登录界面,如下:3. 在Web项目中添加新选项4. 添加一个简单的用户信息类Users,作为WCF的契约成员,当我们从数据库中读取信息后,将赋值给该类的契约成员,方便客户端进行调用;VS2008将自动生成Users类代码,在类命名前添加数据契约属性DataContract()。 为了能够使绑定数据返回修改通知,这里需要继承INotifyPropertyChanged接口,该步骤不添加对本教程也没有影响,为了以后例程代码完整性,这里我继承了该接口。在接口上点击右键,生成代码。代码如下:1. namespace SilverlightDBDemo.Web 2. 3

6、. DataContract() 4. public class Users : INotifyPropertyChanged 5. 6. 7. #region INotifyPropertyChanged Members 8. 9. public event PropertyChangedEventHandler PropertyChanged; 10. #endregion 11. 12. 5. 在Users类中,添加契约成员1. private string userName; 2. DataMember() 3. public string UserName 4. 5. get ret

7、urn userName; 6. set userName = value; 7. 8. 9. private string password; 10. DataMember() 11. public string Password 12. 13. get return password; 14. set password = value; 15. 6. 建立构造函数 public Users(string sUserName,string sPassword),传递用户名和密码给契约成员;1. using System; 2. using System.ComponentModel; 3.

8、using System.Runtime.Serialization; 4. 5. namespace SilverlightDBDemo.Web 6. 7. DataContract() 8. public class Users : INotifyPropertyChanged 9. 10. private string userName; 11. DataMember() 12. public string UserName 13. 14. get return userName; 15. set userName = value; 16. 17. 18. private string

9、password; 19. DataMember() 20. public string Password 21. 22. get return password; 23. set password = value; 24. 25. 26. public Users(string sUserName,string sPassword) 27. 28. UserName = sUserName; 29. Password = sPassword; 30. 31. 32. #region INotifyPropertyChanged Members 33. 34. public event Pro

10、pertyChangedEventHandler PropertyChanged; 35. 36. #endregion 37. 7. 添加Silverlight-enabled WCF Service,修改服务名字为 DBService.svc,需要注意的是,WCF service对于Silverlight仅支持BasicHttpBinding,而VS2008自动生成是customBinding,很多朋友说使用了Silverlight-enabled WCF Service,链接数据库仍旧失败,无法找到远程服务器,是因为没有使用BasicHttpBinding进行通讯,造成的失败。后文我将讲

11、述如何修改。8. 添加后,在Web服务器端会有DBService.svc和DBService.svc.cs文件出现,VS2008将自动更新Web项目的类库引用;9. 双击进入DBService.svc.cs文件,可以看到以下代码:1. using System; 2. using System.Linq; 3. using System.Runtime.Serialization; 4. using System.ServiceModel; 5. using System.ServiceModel.Activation; 6. using System.Collections.Generic;

12、 7. using System.Text; 8. 9. namespace SilverlightDBDemo.Web 10. 11. ServiceContract(Namespace = ) 12. AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed) 13. public class DBService 14. 15. OperationContract 16. public void DoWork() 17. 18. / Add your oper

13、ation implementation here 19. return; 20. 21. 22. / Add more operations here and mark them with OperationContract 23. 24. 这里我们没有修改ServiceContract命名空间,所以保持默认为空,AspNet的兼容需求模式我们保持默认。在正式项目中,我们习惯将所有的OperationContract函数放入一个接口文件中,这样方便扩展以及维护,在本例,为了方便大家理解,就不把OperationContract放入接口文件。 在VS2008自动生成代码下面直接添加数据库访问代

14、码。10. 在添加服务器端数据库访问代码前,需要修改Web.Config文件。和Asp.Net项目一样,在链接数据库前,我们首先需要在Web.Config中配置数据库连接字符串,请自行替换数据库登录ID和密码1. 2. 5. 11. 前文已经说过,Silverlight仅支持使用BasicHttpBinding通过WCF service进行通讯,而VS2008自动生成的代码是customBinding,所以,我们也需要在Web.Config中进行修改.下面是VS2008自动生成的Web.Config部分代码,划线部分是下面要修改的部分。1. 2. 3. 4. 5. 6. 7. 8. 9. 10

15、. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 22. 24. 25. 26. 27. -这里我们需要修改以下几个地方:首先删除customBinding,从上面代码,第10行,到17行,使用下面代码替换:1. 2. 3. 7. 13. 14. 15. 其中那些2147483647之类的属性可以删除,但是如果读取数据库中的大型表格,就需要设置缓冲池之类的尺寸了。这里,我们已经使用了basicHttpBinding. Binding name我使用了BasicHttpBinding_DBService,大家可以随意更换,下面将用到。然后修改22行和23行的代码

16、,将endpoint中的binding,内容修改为basicHttpBinding,bindingConfiguration的内容修改为BasicHttpBinding_DBService。1. 12. 现在我们可以在DBService.svc.cs中添加存取数据库代码,对用户名和密码进行简单匹配,这里不再着重讲述如何条件匹配登录信息。这里演示了如何调用数据库存储过程。完成存取数据库代码后,成功编译Web项目。代码有点长,这里折叠起来。1. private string connectionString = WebConfigurationManager.AppSettingsDbServic

17、eConnectionString; 2. 3. OperationContract 4. public bool GetUser(string cUserName, string cPassword) 5. 6. SqlConnection conn = new SqlConnection(connectionString); 7. SqlCommand cmd = new SqlCommand(Login, conn); 8. cmd.CommandType = CommandType.StoredProcedure; 9. cmd.Parameters.AddWithValue(User

18、Name, cUserName); 10. 11. try 12. 13. conn.Open(); 14. SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow); 15. if (reader.Read() 16. 17. Users user = new Users(string)readercUserName, 18. (string)readercPassword); 19. if (user.Password = cPassword) 20. 21. return true; 22. 23. else

19、24. 25. return false; 26. 27. 28. else 29. 30. return false; 31. 32. 33. finally 34. 35. conn.Close(); 36. 37. 13. 在SilverlightDBDemo客户端,点击右键添加服务引用14. 在弹出窗口中,点击Discover,查找本地WCF service。在地址栏会自动搜索到本地的Service引用,在Services树形框中我们可以看到,在服务器端建立的DBService.svc,双击打开,可以看到,我们建立的GetUser函数,以及默认的DoWork函数。修改下面的命名空间为D

20、BService,方便调用。15. 点击Advanced.高级按钮,确认选中Reuse types in referenced assembiles,如下图,16. 然后,点击确定,会在客户端中生成DBService服务引用。17. 在生成DBService服务引用后,VS2008会自动生成一个ServiceReferences.ClientConfig文件。我们需要留意查看一下该文件内容。其中,bindings信息是basicHttpBinding,而endpoint内容和Web.Config中的内容相同。这里我们不需要修改任何代码。1. 2. 3. 4. 5. 7. 8. 9. 10. 1

21、1. 12. 13. 14. 15. 16. 19. 20. 21. 18. 下面我们将在客户端调用该服务引用,获取数据库的返回值,根据返回值,我们将简单判断登录是否成功。进入MainPage.xaml.cs中,建立GetUser方法。该代码中EndpointAddress是最重要的,出现没有发现远程服务器错误,和这里设置也有关系。在client_GetUserCompleted中,e.Result代表了数据库返回值。可以接受任何值,大家可以根据需要进行值类型转换。每次,用户点击登陆按钮,Silverlight客户端都会向服务器端请求验证,返回结果会在提示信息栏显示。1. private vo

22、id GetUser() 2. 3. EndpointAddress address = new EndpointAddress(new Uri(Application.Current.Host.Source, /SilverlightDBDemo.Web/DBService.svc); 4. DBServiceClient client = new DBServiceClient(new BasicHttpBinding(), address); 5. client.GetUserCompleted += client_GetUserCompleted; 6. client.GetUserAsync(txtUsername.Text, pbPassword.Password); 7. 8. 9. private void client_GetUserCompleted(object sender, GetUserCompletedEventArgs e) 10. 11. try 12. 13. if (e.Result) 14. 15. tbMessage.Text = 登录成功!; 16. 17. else 18. 19. tbMessage.Text = 登录失败!; 20.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1