window8 怎么取数据

来源:互联网 发布:剑网3完整源码 编辑:程序博客网 时间:2024/05/01 11:28

问题1:windows8 能直接访问数据库吗?

这篇文章很好的讲述了访问数据库的几种方式

今天我就写了下用webservice的方式取得数据库。

web服务器上面的代码应该都会写,主要说下window8 客户端取得数据的步骤,


1:首先引用webservice服务引用

2:初始化webservice服务对象,

 MovieServiceReference.MoviesInfoServerSoapClient m = new MovieServiceReference.MoviesInfoServerSoapClient();

3:异步调用

 var sampleDataGroups = await m.GetMoviesListAsync();            ObservableCollection<MovieServiceReference.MovieInfo> list = sampleDataGroups.Body.GetMoviesListResult;

这里调用了***async()的异步方法完成异步调用,await关键字是,net 4.5新增加的特性,他表示该方法是异步的,同时会将该代码后面的代码封装在一个委托当中,当异步完成时才能调用。即将异步方法类似同步实现。

同时需要注意:使用await关键字,方法体上必须声明该方法是异步方法,必须使用async关键字修饰

 private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e)        {            // TODO:  创建适用于问题域的合适数据模型以替换示例数据           // var sampleDataGroups = await SampleDataSource.GetGroupsAsync();           // this.DefaultViewModel["Groups"] = sampleDataGroups;            MovieServiceReference.MoviesInfoServerSoapClient m = new MovieServiceReference.MoviesInfoServerSoapClient();            var sampleDataGroups = await m.GetMoviesListAsync();            ObservableCollection<MovieServiceReference.MovieInfo> list = sampleDataGroups.Body.GetMoviesListResult;            ObservableCollection<MovieModel> movieList = new ObservableCollection<MovieModel>();            foreach (var item in list)            {                MovieModel model = new MovieModel();                model.Movie = item;                model.MovieImage = new BitmapImage(new Uri("http://localhost:1930/ImageHandler.ashx?id="+item.MovieId));                movieList.Add(model);            }                        itemGridView.DataContext = movieList;        }

如果要使用图片资源,建议不要再webservice里面直接写,会影响取得数据的速度,可以用一个一般处理程序来取得图片字节


OK,基本上取得远程数据的方式就这些,下次再写下其他方式

此项目参考"传智播客.net培训Windows 8开发视频教程"


0 0