SilverLight连接数据库通过DataSet获取数据

2016-07-21 19:12:37来源:CSDN作者:u010209404人点击

        做wpf的项目很久了,第一次用sl做项目,发现sl居然不能连接数据库,还要用wcf或webserve间接连接数据库获取数据,间接连接也行,但是不能用System.Data框架,这就很恼火啦,假如我要移植到wpf或者其他程序,那就基本没有可移植性了。下面我将用这个demo,和更多和我一样的小白,快速实现连接数据库,通过DataSet来装数据。

       在这里首先感谢csdn,id为sp1234的大神,在他的指点下,抛弃了wcf和webserve连接数据的方式,采用了通过实现IHttpHandler接口的方式连接数据库。这种方式相比wcf,webservece非常简单和易用,当然wcf,webservece本身也不难。

       学习这节知识,还需要掌握一些C#的常用知识:lambda表达式‘=>’、Action<T>匿名委托和拓展方法。如果这些还不太清楚,可以新搜索学习下。

     第一步、还是先建立silverlight项目:



     第二步、可用可无,自己的一个习惯,喜欢项目一创建完成,就用NuGet工具添加一些帮助工具或框架,比如MVVMLight框架、EF框架、Json库等。如果,你还不清楚怎么使用NuGet使用,可见下文。




     第三步、通过IHttpHandler接口实现数据库连接。



     只要创建ashx文件vs自动帮我们实现IHttpHandler,接下来我们来看怎么实现和调用DataGet的ProcessRequest呢?


     这里我们改写了ProcessRequest方法,现在我们去sl客户端来获取这个方法的值,这里我们先来一张截图:

 

     这种写法,十分装逼,虽然然并卵,但是看上去很美,很是简洁和优雅!这就需要用到lambda表达式‘=>’、Action<T>匿名委托和拓展方法!那么我们先创建一个辅助类,来构建我们要用到的拓展方法。


     好这个扩展方法我们做好了,里面还用到了匿名委托Action来做参数,那么我们现在就去sl客户端的MainPage后台页面中来使用这个扩展方法和获取DataGet类中的ProcessRequest的值





     通过这个扩展方法我们获取DataGet类中的ProcessRequest的值,那么我们再次改写下ProcessRequest让它获取数据库的表,这里有一个很恼火的问题sl客户端不支持System.Data,这意味着我们无法使用DataSet、Tabel等ADO.Net相关的任何对象。怎么办?这里给大家推荐个网站。这个网站里可以下载大神已经写好了的sl专用的DataSet,我们赶快点击获取吧,而且是开源的哟:http://silverlightdataset.net/silverlightdataset/Default.aspx

    

     下载好了,解压在bin目录下找到对应的dll,sl客户端引用Silverlight.DataSet.dll,web引用Silverlight.DataSetConnector.dll


     现在dll引用好了,我们开始编写连接数据代码吧。我用的mysql数据库,需要用到mysql的动态库。C#的数据库连接方式都是一样的只是名字又细小的差别。现在webconfig中配好连接字符串。








     好的,到此这个demo,已经做完了,你学会了嘛?那么更新数据,添加数据。更好做了嘛,举一反三,在添加一个名为DataSet的ashx的文件在ProcessRequest方法中实现就好了。谢谢大家的浏览!



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台